본문 바로가기

dreamhack

[Dreamhack] php-1 이번에 포스팅 할 문제는 LFI 취약점을 이용한 php 문제이다.서버를 생성하여 해당 문제의 페이지를 확인해보자. 페이지를 확인하였을 때, 중요하게 볼 페이지는 List와 View 페이지이다.먼저 문제 파일을 받아보면 view.php, main.php, list.php, index.php 4개의 파일이 있다. 그 중에서 취약점이 나타날 것으로 추정되는 view 페이지를 살펴보자. View코드를 확인해보면 preg_match() 함수를 사용하여 사용자 입력값인 file 파라미터에 대해 문자열 필터링을 수행한다.정규식 /flag|:/i에 의해 입력 값에 flag 문자열 또는 : 문자가 포함될 경우 Permission denied를 출력하며 실행을 종료한다.그래서 flag 입력 값이 필터링 되어 있으므로, 우.. 더보기
[Dreamhack] CSRF-1 및 CSRF-2 CSRF-1이번 문제에선 CSRF이다.이전 포스팅에서 XSS문제로 다뤘었는데, 비슷하다고 보면 된다.항목XSSCSRF무엇을 공격?브라우저(클라이언트)서버어떻게?악성 JavaScript 실행자동 GET/POST 요청 발생피해 조건입력 값이 출력됨 (필터링 취약)서버가 쿠키 기반 인증(토큰 검증 없음)공격 성공 시JS 실행 후 쿠키/데이터 탈취 가능계정이 대신 행동함예' return ''memo_text = ""@app.route("/memo")def memo(): global memo_text text = request.args.get("memo", None) if text: memo_text += text return render_template("memo... 더보기
[Dreamhack] XSS-1 및 XSS-2 XSS-1XSS문제이다. 서버를 열고 문제 파일을 받아 app.py 파일을 열어 코드를 확인해보자. 먼저 서버를 열고 웹을 확인하면 vuln(xss) page, memo, flag 페이지가 있다. 각각 vuln(xss) page, memo, flag 페이지 순이다. #!/usr/bin/python3from flask import Flask, request, render_templatefrom selenium import webdriverfrom selenium.webdriver.chrome.service import Serviceimport urllibimport osapp = Flask(__name__)app.secret_key = os.urandom(32)try: FLAG = open("./f.. 더보기
[Dreamhack] php7cmp4re php에 대한 웹 해킹 문제알맞은 Input 값을 구해 입력하여 플래그를 획득하는 문제이다. 서버를 열어 웹 접속하게 되면 이러한 input1와 input2를 입력하여 제출하면 된다.문제 파일을 받고 check.php를 메모장에 삽입해 코드를 확인해보자. 코드가 나오는 것을 볼 수 있다.여기서 input 입력에 대한 힌트가 있는데 if문 조건식을 주목해보자. 먼저 input1에 대한 조건이다.1. if(strlen($input_1) "7.9")길이가 4보다 작아야함$input_1이 "8", "7.A" 보다 작으면서 "7.9" 보다 커야함."8"와 "7.A"를 아스키 코드로 변환하면 "8"은 56, "7.A"는 55, 46, 65첫 문자부터 사전식 비교를 하기 때문에 56보다 55가 더 작다.즉, 만족해.. 더보기
[Dreamhack] Cookie 문제 Cookie쿠키로 인증 상태를 관리하는 문제사용자 정보나 세션 ID를 저장하는쿠키 취약점에 대한 로그인 동작을 다룸(키워드 : 인증 상태) 각 문제마다 힌트(문제 파일)가 있음 Reference보면 각 문제마다 참고 자료(개념 설명)가 있으니 활용(Cookie 문제에는 없음) VM 접속하여 해당 문제를 풀면 됨웹 말고도 시스템(리눅스 등)으로 풀이 가능 VM 서버 접속 후 Login 버튼 누르면로그인 페이지가 나오는 것을 확인여기서 admin 계정으로 로그인해야 함 개발자모드(F12)에서 확인하면 주석으로 되어있는 수상한 글 발견 개발자모드는 디버깅, 테스트 또는개발환경의 상태를 확인하기 위해 사용됨 시스템이 초기화될 때 기본 계정이guest로 설정되는 경우가 대부분(기본 사용자 계정 중 하나라고 볼 수.. 더보기