본문 바로가기

드림핵 워게임

(24)
[드림핵/워게임] simple_sqli https://dreamhack.io/wargame/challenges/24 simple_sqli 로그인 서비스입니다. SQL INJECTION 취약점을 통해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. Reference Server-side Basic dreamhack.io 정말 심플하게 로그인 창만 구현되어 있다. 코드를 보자 @app.route('/login', methods=['GET', 'POST']) def login(): if request.method == 'GET': return render_template('login.html') else: userid = request.form.get('userid') userpassword = request.form.g..
[드림핵/워게임] basic_exploitation_001 https://dreamhack.io/wargame/challenges/3 basic_exploitation_001 Description 이 문제는 서버에서 작동하고 있는 서비스(basicexploitation001)의 바이너리와 소스 코드가 주어집니다. 프로그램의 취약점을 찾고 익스플로잇해 "flag" 파일을 읽으세요. "flag" 파일의 내용을 dreamhack.io 문제 파일을 다운 받으면 basic_exploitation_001.c파일과 실행 파일이 있다. #include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1); } void initialize() { setvbuf(stdin, NULL, _IONBF..
[드림핵/워게임] basic_exploitation_000 https://dreamhack.io/wargame/challenges/2/
[드림핵/워게임] Return Address Overwrite https://dreamhack.io/wargame/challenges/351/ Return Address Overwrite Description Exploit Tech: Return Address Overwrite에서 실습하는 문제입니다. dreamhack.io 문제 파일을 다운 받으면 rao.c와 실행파일이 있다. // Name: rao.c // Compile: gcc -o rao rao.c -fno-stack-protector -no-pie #include #include void init() { setvbuf(stdin, 0, 2, 0); setvbuf(stdout, 0, 2, 0); } void get_shell() { char *cmd = "/bin/sh"; char *args[] = {cmd..
[드림핵/워게임] csrf-2 write-up https://dreamhack.io/wargame/challenges/269/ csrf-2 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. CSRF 취약점을 이용해 플래그를 획득하세요. 문제 수정 내역 2023.07.18 css, html 제공 및 read_url() 코드 일부가 변경되었습니다. Referen dreamhack.io csrf-1과 다르게 login 페이지와 로그인 하라는 문구가 보인다. guest:guest로 로그인을 해 보면 admin이 아니라는 문구가 뜬다. 코드를 살펴 보자! 코드 index @app.route("/") def index(): session_id = request.cookies.get('sessionid', None) try: username = ..
[드림핵/워게임] csrf-1 write-up https://dreamhack.io/wargame/challenges/26/ csrf-1 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. CSRF 취약점을 이용해 플래그를 획득하세요. 문제 수정 내역 2023.07.18 css, html 제공 및 read_url() 코드 일부가 변경되었습니다. Referen dreamhack.io xss 문제들과 거의 똑같은 페이지이다. 먼저 vuln 페이지이다. parameter로 넘겨 준 script 태그가 *로 치환된 것을 보아 필터가 있는 모양이다. admin/notice_flag 페이지를 들어가면 다음과 같이 뜬다. memo, flag 페이지는 xss 문제와 동일하므로 생략하겠다. 코드 vuln @app.route("/vuln") def vu..
[드림핵/워게임] xss-2 write-up https://dreamhack.io/wargame/challenges/268/ xss-2 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. XSS 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. 플래그 형식은 DH{...} 입니다. 문제 수정 내역 dreamhack.io 전체적인 페이지는 xss-1과 크게 다를 게 없어 보인다. 다만 vuln 페이지에서 param으로 넘겨준 스크립트 태그가 실행이 되지 않는다. xss-1과 뭐가 다른지 코드로 살펴 보자 코드 def read_url(url, cookie={"name": "name", "value": "value"}): cookie.update({"domain": "127.0.0.1"}) try:..
[드림핵/워게임] xss-1 write-up https://dreamhack.io/wargame/challenges/28/ xss-1 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. XSS 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. 플래그 형식은 DH{...} 입니다. 문제 수정 내역 dreamhack.io 처음 사이트를 들어가 보면 다음과 같이 나온다. vuln 페이지에 들어가 보면 인자로 넘겨 준 스크립트가 실행된 것을 볼 수 있다. memo페이지에서는 param으로 넘겨준 memo 값이 그대로 출력되는 걸 볼 수 있다. flag 페이지는 다음과 같다. 코드를 살펴 보자!! memo @app.route("/memo") def memo(): global memo_text text ..