썸네일 Dreamhack pathtraversal 문제 풀이 1. 문제 설명path traversal 취약점을 통해 /api/flag 경로에 있는 flag값을 획득하면 되는 문제다. path traversal은 취약한 특정 부분에 경로를 대입하여 서버 내부의 파일에 접근할 수 있는 취약점이다. 2. 문제 풀이Get User Info 버튼이 좀 의심스럽다. 입력부에 guest와 admin을 입력하여 View했을때, 다음과 같이 출력된다. 주어진 파일을 보면 POST부분에서 userid부분을 통해 요청을 처리하는거 같다. Burp Suite를 통해 확인하였을 때, userid가 guest에서는 0으로, admin에서는 1로 들어간다. userid부분을 ../flag로 바꾸어서 path traversal 공격을 시도해 본다. 간단하게 플래그 값을 구할 수 있다. 3. ..
썸네일 런던 숙소 찾기 런던 숙소 지역 정하기 영국 런던 치안 좋은 숙소 위치와 비추천 위치 (위험한 지역) / 런던 여행 시 밤에 위험한 곳 + 추오늘은 런던의 치안 정보와 안전한/ 위험한 숙소 지역을 알려드리려고한다. 런던은 여기저기 볼 게 참 많은...blog.naver.com이 글이랑 이것저것 여러가지 글들 읽어보면서 런던에서 묵을 숙소 위치가 어디가 가장 괜찮을지, 가격이나 시설이나 이런거를 좀 많이 봤다. 숙소는 직전에 예약하는거 아니고선 최대한 일찍하는게 제일 저렴하다고 배웠기에... 무료취소 옵션이 달린 숙소로 예매하고 좀 지켜보다가 괜찮은 조건으로 나오면 예약하는 식으로 그동안 예약했던거 같다.숙소는 위에 블로그에 나온 곳 중에 안전하다고 생각되는 핌리코, 켄싱턴, 세인트 판크라스역 근처 지역과 첼시, 풀럼 등..
썸네일 Dreamhack session 문제 풀이 1. 문제 설명저번에 풀어봤던 session-basic과 얼추 비슷할거라고 생각이 되긴 하나, 문제를 천천히 보면서 풀이해볼 생각이다. 2. 문제 풀이페이지에 접속하면 간단한 화면이 출력된다. 먼저 제공된 파이썬 파일을 확인해봤더니, guest, user, admin 총 3가지 계정이 존재하며, admin은 FLAG를 부여한다. session_id와 session_storage를 잘 보면 urandom(4)와 urandom(1)의 존재를 확인 가능하다. 아무래도 session과 연관된 부분일거라고 생각이 된다. 로그인을 먼저 해보면 대략 감이 잡힐 듯 싶다. 3번정도 시도해봤을 때, urandom(4).hex는 16진수의 8자리 문자열을 무작위로 생성해낸다는 결과를 얻었다. 혹시 모르니 저번에 풀어본 s..
썸네일 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값을 변조하는 문제였으며, 로그인 시 문제가 있음을 확인하고 브라우저에서 자체적으로 취약점을 알려준다.