Wargame CTF/Dreamhack(5)
-
[Dreamhack] simple_sqli - Write up
문제 분석 #!/usr/bin/python3 from flask import Flask, request, render_template, g import sqlite3 import os import binascii app = Flask(__name__) app.secret_key = os.urandom(32) try: FLAG = open('./flag.txt', 'r').read() except: FLAG = '[**FLAG**]' DATABASE = "database.db" if os.path.exists(DATABASE) == False: db = sqlite3.connect(DATABASE) db.execute('create table users(userid char(100), userpasswor..
2021.08.17 -
[Dreamhack] proxy-1
문제 분석 Socket hostm port를 정하고 입력을 받고 있습니다. 코드 #!/usr/bin/python3 from flask import Flask, request, render_template, make_response, redirect, url_for import socket app = Flask(__name__) try: FLAG = open('./flag.txt', 'r').read() except: FLAG = '[**FLAG**]' @app.route('/') def index(): return render_template('index.html') @app.route('/socket', methods=['GET', 'POST']) def login(): if request.method..
2021.08.11 -
[Dreamhack] cookie
문제 분석 default account 노출이 됬으므로, 바로 guest guest로 로그인 해보겠습니다. 음.. 문제 파일을 열어보겠습니다 #!/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', 'admin': FLAG } @app.route('/') def index(): username = request.cookies.get('username', None) i..
2021.08.11 -
[Dreamhack] basic_rop_x64 - Write Up
문제 IDA 디컴파일 int __cdecl main(int argc, const char **argv, const char **envp) { char buf; // [rsp+10h] [rbp-40h] __int64 savedregs; // [rsp+50h] [rbp+0h] memset(&buf, 0, 0x40uLL); initialize(&savedregs, argv, &buf); read(0, &buf, 0x400uLL); write(1, &buf, 0x40uLL); return 0; } x86 문제와 거의 비슷합니다. buf변수는 총 0x40byte를 할당받았지만, 입력은 0x400byte 만큼 입력받으므로, BOF 발생 NX 보호기법이 걸려있으므로, 쉘코드로는 불가능합니다. 딱히 특별한 것은 없으므..
2021.08.01 -
[Dreamhack] basic_rop_x86 - Write Up
문제. IDA 디컴파일. int __cdecl main(int argc, const char **argv, const char **envp) { char buf; // [esp+0h] [ebp-44h] memset(&buf, 0, 0x40u); initialize(0, &buf); read(0, &buf, 0x400u); write(1, &buf, 0x40u); return 0; } buf는 0x44 만큼 할당되어 있지만, 입력은 0x400 만큼 받으므로, BOF가 발생합니다. NX 보호기법이 걸려있으므로, 쉘코드로는 불가능합니다. 딱히 특별한 것은 없으므로, ROP를 이용하여 문제를 풀어나가겠습니다. 분석 1. BUF, SFP를 채워주고 ret주소를 puts@plt 인자값을 puts@got으로 puts..
2021.07.31