웹해킹 3

[Dreamhack] Addition calculator 풀이

덧셈 식을 입력하면 계산 결과를 출력하는 웹 서비스란다. flag는 ./flag.txt 에 있다고 한다.  문제 페이지이다. 입력을 받는다. 1+2 를 입력하게 되면? 소스코드를 보자#!/usr/bin/python3from flask import Flask, request, render_templateimport stringimport subprocessimport reapp = Flask(__name__)def filter(formula): w_list = list(string.ascii_lowercase + string.ascii_uppercase + string.digits) w_list.extend([" ", ".", "(", ")", "+"]) if re.search("(syst..

Dreamhack 2024.05.26

[Dreamhack] BypassIF 풀이

BypassIF이다. 제목만 봐서는 IF문을 바이패스 해야될 것 같다. 문제 페이지이다. 맞는 key를 submit 하면 될 것 같다. 아무 값이나 넣어봤는데 아무 반응이 없다. 감이 안잡히므로 소스코드를 보도록 하자. #!/usr/bin/env python3 import subprocess from flask import Flask, request, render_template, redirect, url_for import string import os import hashlib app = Flask(__name__) try: FLAG = open("./flag.txt", "r").read() except: FLAG = "[**FLAG**]" KEY = hashlib.md5(FLAG.encode())...

Dreamhack 2024.04.03

[Dreamhack] XSS Filtering Bypass 풀이

오늘은 XSS Filtering Bypass를 풀어보자. 몇 달 전에 풀었지만 기억이 가물가물해서 다시 풀어볼거다. 문제 페이지이다. vuln(xss) page와 memo, flag 3개의 페이지가 따로 있다. vuln(xss) page를 접속하게 되면 get으로 파라미터에 를 사용했고, 실제 동작하는 모습이다. img src 취약점이 있다 라는 것을 보여주려고 vuln 페이지를 만들어 둔 것 같다. memo 페이지를 들어가보자 memo 페이지에서는 hello가 출력되어 있는 모습이다. url을 보니 memo?memo=hello 이다. memo= 뒤의 문자열을 메모해서 보여주는 것 같다. 아니나 다를까 GET으로 cert라는 문자열을 보내니 'cert' 라는 문자열이 입력된 모습이다. 마지막으로 flag..

Dreamhack 2024.03.20