
basic_exploitation_000 이 문제는 서버에서 작동하고 있는 서비스(basic_exploitation_000)의 바이너리와 소스 코드가 주어집니다. 프로그램의 취약점을 찾고 익스플로잇해 셸을 획득한 후, “flag” 파일을 읽으세요. “flag” 파일의 내용을 워게임 사이트에 인증하면 점수를 획득할 수 있습니다. 플래그의 형식은 DH{…} 입니다. # 문제 분석 - basic_exploitation_000.c #include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1); } void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, N..

shell_basic 입력한 셸코드를 실행하는 프로그램입니다. main 함수가 아닌 다른 함수들은 execve, execveat 시스템 콜을 사용하지 못하도록 하며, 풀이와 관련이 없는 함수입니다. flag 위치와 이름은 /home/shell_basic/flag_name_is_loooooong입니다. # 문제 분석 - execve, execveat 시스템 콜을 사용하지 못하므로 orw 셸코드를 생각해 볼 수 있다 💡 orw 셸코드란? 파일을 열고, 읽은 뒤 화면에 출력해주는 셸코드 [참고] 2022.04.03 - [System hacking/system hacking] - [Dreamhack] Exploit Tech: Shellcode # exploit from pwn import * context.ar..

simple_sqli 로그인 서비스입니다. SQL INJECTION 취약점을 통해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다 * [Dreamhack] Exercise: SQL Injection * [Dreamhack] Exercise: Blind SQL Injection # 배경 지식 - 본 문제에서는 SQLite를 이용해 데이터베이스를 관리하고 있음 - SQLite: 기존에 알려진 MySQL, MSSQL, Oracle 등과 유사한 형태의 데이터베이스 관리 시스템 - SQLite는 데이터 관리를 위한 일부 필수 기능만을 지원하기 때문에 기존 관리 시스템에 비해 비교적 경량화된 데이터 베이스 관리 시스템으로 널리 알려져 있음 - SQLite는 많은 양의 컴퓨팅 리소스를 제공하..

CSRF-2 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다 CSRF 취약점을 이용해 플래그를 획득하세요 # 접속 로그인을 해달라는 문구가 보인다 # 코드 확인 #!/usr/bin/python3 from flask import Flask, request, render_template, make_response, redirect, url_for from selenium import webdriver import urllib import os app = Flask(__name__) app.secret_key = os.urandom(32) try: FLAG = open("./flag.txt", "r").read() except: FLAG = "[**FLAG**]" users = { 'guest..

CSRF-1 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다 CSRF 취약점을 이용해 플래그를 획득하세요 * [Dreamhack] Exercise: CSRF # 문제 목표 및 기능 요약 - CSRF-1 문제의 목표는 CSRF를 통해 관리자 계정으로 특정 기능을 실행시키는 것 - 문제에서는 다음 네 페이지를 제공함 # 엔드포인트: /vuln - vuln 함수 @app.route("/vuln") # vuln 페이지 라우팅 (이용자가 /vuln 페이지에 접근시 아래 코드 실행) def vuln(): param = request.args.get("param", "").lower() # 이용자가 입력한 param 파라미터를 소문자로 변경 xss_filter = ["frame", "script", ..

xss-2 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다 XSS 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다 # 접속 xss-1 문제와 다르지 않은 페이지가 보인다 # 코드 확인 #!/usr/bin/python3 from flask import Flask, request, render_template from selenium import webdriver import urllib import os app = Flask(__name__) app.secret_key = os.urandom(32) try: FLAG = open("./flag.txt", "r").read() except: FLAG = "[**FLAG**]" def read_url(u..

xss-1 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. XSS 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다 * [Dreamhack] Exercise: XSS # 문제 목표 및 기능 요약 - 목표: XSS를 통해 이용자의 쿠키를 탈취하는 것 # 엔드포인트: /vuln - 이용자가 전달한 xss 파라미터의 값을 출력 @app.route("/vuln") def vuln(): param = request.args.get("param", "") # 이용자가 입력한 vuln 인자를 가져옴 return param # 이용자의 입력값을 화면 상에 표시 # 엔드포인트: /memo - 이용자가 전달한 memo 파라미터 값을 render_template 함수..

funjs 입력 폼에 데이터를 입력하여 맞으면 플래그, 틀리면 NOP!을 출력하는 HTML 페이지입니다. main 함수를 분석하여 올바른 입력 값을 찾아보세요! # 접속 문제를 열어보니 입력 폼이 요기조기 돌아다닌다 아무 값이나 입력해보니 문제 설명대로 NOP! 를 출력한다 # 코드 확인 Find FLAG ! 위와 같은 소스코드를 확인할 수 있었다 text2img가 인자로 받은 값을 사용해 플래그를 출력해주는 역할을 하는 함수같았고, _0x1046[] 리스트 안에 함수 이름들이 중간중간 보인다 # Exploit if (flag[_0x374fd6(0x17c)] != 0x24) { text2img(_0x374fd6(0x185)); return; } for (var i = 0x0; i < flag[_0x374..

session-basic 쿠키와 세션으로 인증 상태를 관리하는 간단한 로그인 서비스입니다 admin 계정으로 로그인에 성공하면 플래그를 획득할 수 있습니다 # 접속 특별한 점은 보이지 않는다 소스코드를 보자 # 코드 확인 #!/usr/bin/python3 from flask import Flask, request, render_template, make_response, redirect, url_for app = Flask(__name__) try: FLAG = open('./flag.txt', 'r').read() except: FLAG = '[**FLAG**]' users = { 'guest': 'guest', 'user': 'user1234', 'admin': FLAG } session_storag..

cookie 쿠키로 인증 상태를 관리하는 간단한 로그인 서비스 admin 계정으로 로그인에 성공하면 플래그를 획득할 수 있음 * [Dreamhack] Exercise: Cookie # 문제 목표 및 기능 요약 - 해당 문제의 목표는 관리자 권한을 획득해 FLAG를 획득하는 것 # 엔드포인트: / - 해당 페이지에서는 요청에 포함된 쿠키를 통해 사용자를 식별 @app.route('/') # / 페이지 라우팅 def index(): username = request.cookies.get('username', None) # 이용자가 전송한 쿠키의 username 입력값을 가져옴 if username: # username 입력값이 존재하는 경우 return render_template('index.html', ..