dreamhack 6

Zed Attack Proxy (ZAP) 사용 가이드 : [Dreamhack] web-ssrf 풀이

🚀  ZAP의 사용법은 뒤에 나오니 내려가주세요 🚀 web-ssrf 라는 문제입니다. 💡 SSRF 란 ?   Server-side Request Forgery(SSRF)는 웹 서비스의 요청을 변조하는 취약점으로,   웹서버에 위조된 요청을 보내면, 해당 웹서버가 내부 서버와 통신을 수행하도록 조작할 수 있습니다.   이를 통해 사용자는 직접 접근할 수 없는 내부 자원에 대해 간접적으로 공격을 수행할 수 있습니다.  🔎 소스코드 분석🖋️ 전체 코드더보기#!/usr/bin/python3from flask import ( Flask, request, render_template)import http.serverimport threadingimport requestsimport os, random, b..

etc 2024.12.24

[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] what-is-my-ip 풀이

How are they aware of us even behind the wall..?어떻게 그들이 우리를 알고 있냐 벽 뒤에 있음에도..(?) 영어못함 그들이 우리 ip를 어떻게 알고 있냐 라고 물어보는 것 같은 그냥 제 생각이구요Flag는 /flag에 있다고 하네요~ 문제 페이지이다. 들어가면 제 ip가 출력되는 모습을 볼 수 있다. 암튼 소스 분석 ㄱㄱ #!/usr/bin/python3import osfrom subprocess import run, TimeoutExpiredfrom flask import Flask, request, render_templateapp = Flask(__name__)app.secret_key = os.urandom(64)@app.route('/')def flag()..

Dreamhack 2024.05.23

[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 Advanced 풀이

이번엔 XSS Filtering Bypass가 Advanced 돼서 돌아왔다..! 무려(?) 3단계다.. 뭐가 달라졌는지 알아보자 저번 문제와 같이 3개의 페이지가 있다. /vuln 페이지이다. 스크립트 사용이 가능하다는 것을 보여준다. @app.route("/vuln") def vuln(): param = request.args.get("param", "") param = xss_filter(param) return param /vuln 소스코드다. param의 파라미터 값을 받아서 xss_filter에 넘겨준다. def xss_filter(text): _filter = ["script", "on", "javascript"] for f in _filter: if f in text.lower(): ret..

Dreamhack 2024.03.24

[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