์ด๋ฐ์์ผ๋ก ์ฌ๋ฌผํจ์ด๋ ์๋ฌผ์ ๋น๋ฒ์ ๋ง์ถฐ์ผํ๋ ๋ฌธ์ ์ด๋ค ์ฌ๋ฌผํจ ๋ฒํธ๋ ์ํ๋ฒณ ์๋ฌธ์ ํน์ ์ซ์๋ฅผ ํฌํจํ๋ 4์๋ฆฌ ๋๋ค ๋ฌธ์์ด์ด๊ณ , ๋น๋ฐ๋ฒํธ๋ 100 ์ด์ 200 ์ดํ์ ๋๋ค ์ ์๋ผ๊ณ ํ๋ค #!/usr/bin/python3 from flask import Flask, request, render_template import string import random app = Flask(__name__) try: FLAG = open("./flag.txt", "r").read() # flag is here! except: FLAG = "[**FLAG**]" rand_str = "" alphanumeric = string.ascii_lowercase + string.digits #์๋ฌธ์ or ์ซ์ for i in..
์คํฌ๋ฆฝํธ ํ์ผ์ ์ ๋ ฅ์ ํ๋๋ ์คํ์ด ๋์ง ์์๋ค. ์ด์ ๊ฐ์ ํ๊ทธ๋ ์ฐํํ๊ณ ์๋๋ณด๋ค ์ด๋ฐ์์ผ๋ก path traversal์ ์๋ํด๋ณด์๋๋ฐ ์๋์๋ค ์ฝ๋๊ฐ ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ ธ์๋์ง ์ด์ ๋ฏ์ด๋ณด๋๋ก ํ๊ฒ ๋ค #!/usr/bin/env python3 import os import shutil from flask import Flask, request, render_template, redirect from flag import FLAG APP = Flask(__name__) UPLOAD_DIR = 'uploads' @APP.route('/') def index(): files = os.listdir(UPLOAD_DIR) return render_template('index.html', files=files) @..
list.php Image Storage Home List Upload
@app.route("/flag", methods=["GET", "POST"]) def flag(): if request.method == "GET": return render_template("flag.html") elif request.method == "POST": param = request.form.get("param") form์์ param์ param์ผ๋ก ์ ์ฅ if not check_xss(param, {"name": "flag", "value": FLAG.strip()}): return '' return '' ์ฌ๊ธฐ์ check_xss(param, {"name": "flag", "value": FLAG.strip()}) ํธ์ถ param์ ์ฐ๋ฆฌ๊ฐ flag์์ form์ผ๋ก ์ ๋ ฅํ ์ธ์. @ap..
์ค๋์ ๋ฒํ์ค์ํธ์ cluster bomb ๊ธฐ๋ฅ์ ๋์ถฉ ์์ฝํ ๊ธ์ด๋ค. ์ฃผ์ ๋ฆฌ ๋ง์ใ ใ ใ Burp Suite์ Intruder๋ฅผ ์ด์ฉํด Blind SQL Injection์ ์งํํ๋ ๋์ค ๋ณ์ 2๊ฐ์ ๋ํด ๊ฐ๊ธฐ ๋ค๋ฅธ ๊ท์น์ ์ ์ฉํด์ฃผ์ด์ผํ๋ ์ผ์ด ์์๋ค. ๋๋ ๋ฐ๋ณด๊ฐ์ด......... Cluster Bomb์ด๋ผ๋ ๋ฉ์ง ์์ด๊ฐ ์๋ ์ค๋ ๋ชจ๋ฅด๊ณ ...... ์๋์ผ๋ก ๊ณต๊ฒฉ์ ์งํํ๋ค....... ์ ๊ธ์ ๋ฐ๋ฅด๋ฉด "This attack iterates through a different payload set for each defined position. The Cluster Bomb Attack is useful where an attack requires unrelated or unknown input t..