썸네일 Dreamhack ex-reg-ex 문제 풀이 1. 문제 설명간단하게 문제에서 요구하는 형식(아무래도 정규표현식 내지 조건문 일 것 같다.)의 문자역을 입력하여 플래그를 획득하면 되는 문제이다. 2. 문제 풀이첫 화면에는 간단하게 무언가 적는 칸하고, 우리가 얻어야 할 Flag가 보인다. 중간에 정규표현식이 주어지고, 사용자가 입력한 값이 정규표현식의 조건과 맞는다면 flag를 불러오는 구조로 이루어져 있다. 해석을 간단하게 해보면 dr\w{5,7}e\d+am@[a-z]{3,7}\.\w+에서dr : dr을 의미\w : 알파벳, 숫자, 언더바(_)전체를 의미{5,7} 앞의 내용을 5번 이상 7번 이하 반복e : e를 의미\d : 0-9 사이의 숫자를 의미+ : 바로 앞 문자 1회 이상 반복am : am을 의미@ : @를 의미[a-z] : 소문자중 한 ..
썸네일 Dreamhack phpreg 문제 풀이 1. 문제 설명문제는 간단하다. php로 작성된 페이지에서 알맞게 입력하고 flag를 찾으면 되는 문제이다. 2. 문제 풀이페이지에 접속하면 다음과 같이 페이지가 출력된다. step2.php를 보면, dnyang0310이 name으로, d4y0r50ng+1+13이 pw로 가야되는 것을 확인할 수 있다. 다만 위에 보면 알겠지만 preg_replace에서 name에는 nyang을 공백으로, /\d*\@\d{2,3}(31)+[^0-8\"]\!/"를 d4y0r50ng으로 치환해준다는 것을 확인 가능하다. 나아가 pw에 알파벳이 들어가면 오류 메시지를 출력하도록 코딩되어 있다. name의 dnyang0310에서 nyang이 치환 당해도 남아있을 수 있도록 하려면 dnnyangyang0310처럼 nyang이란 문..
썸네일 Dreamhack Flying Chars 문제 풀이 1. 문제 설명간단하다. 파일도 제공안해줘서 바로 페이지로 가보자. 2. 문제 풀이뭐 이상한게 많이 날라다닌다. 개발자 도구를 켜서 하나하나 살펴보자. Too_H4rd_to_sEe_th3_ch4rs_x.x란것을 알았다. 이 내용을 DH{}에 넣어서 문제를 해결할 수 있다. 3. 정리귀찮지만 일일이 다 확인해서 문자열을 만들어야 한다.
썸네일 Dreamhack php7cmp4re 문제 풀이 1. 문제 설명php 관련한 문제이다. Input 값을 조건에 맞게 입력하면 될것 같다. 2. 문제 풀이사이트를 접속하면 위와 같이 나타난다. php 파일중에 check.php 파일을 열어서 조건을 확인한다.input_1은 string 8과 string 7.A보다 작고 string 7.9보단 커야한다. 또한 4자리 미만이여야 성립한다.input_2는 string 74보단 크고 int 74보단 작아야한다. 또한 3자리 미만 1자리 초과이기 때문에 2자리여야 한다. input_1은 ASCII코드로 변환하면 위와 같이 나오는데, 밑에 ASCII 코드 테이블을 확인하여 적당하게 7.?면 될 것 같다. string 74도 변환하면 55 52이고, int 74보단 작으면서 두자리수여야하기 때문에 ASCII Cod..
썸네일 Dreamhack simple-web-request 문제 풀이 1. 문제 설명STEP 1하고 2를 통과하여 FLAG 페이지에 도달해야함을 확인한다. 2. 문제 풀이먼저 사이트에 접속해본다.import osfrom flask import Flask, request, render_template, redirect, url_forimport sysapp = Flask(__name__)try: # flag is here! FLAG = open("./flag.txt", "r").read() except: FLAG = "[**FLAG**]"@app.route("/")def index(): return render_template("index.html")@app.route("/step1", methods=["GET", "POST"])def ste..
썸네일 Dreamhack file-download-1 문제 풀이 1. 문제 설명File Download 취약점이 존재하는 웹 서비스이고, flag.py를 다운로드 받으면 플래그를 획득할 수 있다는 내용을 확인한다. 2. 문제 풀이먼저 Upload My Memo에 들어가 내용을 test test로 적고 업로드 해본 다음에 작성한 메모에 접속해보면 URL에 방금 생성한 test를 읽어올 수 있는 내용이 포함된 것을 확인할 수 있다. 우리의 목표는 flag.py이므로 name 뒤의 값을 flag.py로 작성하였을때는 존재하지 않는다고 뜬다. 이는 memo와 같은 경로에 flag.py라는 파일이 없다는 것을 의미하므로 다른 경로에 있을 가능성이 있기에, 상대경로인 ../를 사용해서 찾아보는데, 한번에 나왔다. 3. 정리간단하게 해결할 수 있는 문제이며 flag.py파일을 찾..
썸네일 Dreamhack xss-1 문제 풀이 1. 문제 설명XSS 취약점 이용, flag.txt와 FLAG 변수에 플래그 값이 있음을 확인한다. 2. 문제 풀이from 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("./flag.txt", "r").read()except: FLAG = "[**FLAG**]"def read_url(url, cookie={"name": "name", "value": "v..
썸네일 Dreamhack devtools-source 문제 풀이 1. 문제 설명개발자 도구-Sources 탭에서 DH{어쩌구저쩌구}의 플래그를 찾으면 되는 문제다. 2. 문제 풀이다운 받은 파일의 index.html을 열고, 개발자 도구-Sources에서 파일을 열어보며 command+F 혹은 ctrl+F를 사용하여 DH를 입력하여 FLAG 값을 획득한다. 3. 정리상당히 간단한 문제로 FLAG값을 손쉽게 구할 수 있었다.
썸네일 Dreamhack session-basic 문제 풀이 1. 문제 설명쿠키와 세션으로 인증 상태를 관리하는 로그인 서비스임을 확인한다.2. 문제 풀이주어진 사이트에 먼저 접속한다. 문제에 주어진 파일에서 users부분과 @app.route 부분을 주목한다. guest 계정으로 로그인을 시도한다.개발자 도구-Application-Cookies를 선택하고 session값을 확인한 후에, /admin 페이지에 들어가 guest에 맞는 세션 값이 들어가서 이 페이지가 진짜 정보를 갖고 있음을 확인한다. 올바른 정보임이 확인되었음으로 admin의 session값을 복사하여 session값을 수정해주고 새로고침하여 FLAG를 획득한다. 3. 정리session값을 변조하는 문제였으며, 로그인 시 문제가 있음을 확인하고 브라우저에서 자체적으로 취약점을 알려준다.
썸네일 Dreamhack cookie 문제 풀이 1. 문제 설명Dreamhack에서 cookie문제 설명에 쿠키로 인증 상태를 관리하는 로그인 서비스라는 설명이 있다. cookie는 개발자 도구에서 쉽게 확인이 가능한 것을 생각한다. 2. 문제 풀이사이트에 먼저 접속하면 다음과 같이 뜬다. 주어진 app.py 파일을 열어 본 결과 users라는 항목에 guest와 admin이 존재한다. guest에 guest로 먼저 로그인 한다. 개발자 도구에서 cookie를 보기위해 Application으로 간다. Application에서 Cookies를 클릭하였을 때, username이 guest인 것을 확인하고 admin으로 변경해준다. admin으로 변경한 후에 새로고침하면 다음과 같이 FLAG값을 획득할 수 있다. 3. 정리cookie값을 변조하면 끝나는 문..