https://dreamhack.io/wargame/challenges/39
๋ฌธ์ ์ค๋ช
์กด์ฌํ์ง ์๋ ํ์ด์ง ๋ฐฉ๋ฌธ์ 404 ์๋ฌ๋ฅผ ์ถ๋ ฅํ๋ ์๋น์ค์
๋๋ค.
SSTI ์ทจ์ฝ์ ์ ์ด์ฉํด ํ๋๊ทธ๋ฅผ ํ๋ํ์ธ์. ํ๋๊ทธ๋ flag.txt, FLAG ๋ณ์์ ์์ต๋๋ค.
ํ์ด
SSTI์ ๋ํด์ ์๊ณ ์์ด์ผํ๋ ๋ฌธ์ . ๋ Flask์ ๋ํ ๋ฐฐ๊ฒฝ ์ง์๋ ํ์ํ๋ค
ํ์๋ Flask๋ฅผ ์ด์ฉํด๋ณธ ์ ์ด ์์ด์ (์ ๋ง ๊ฐ๋จํ ๋ธ๋ก๊ทธ ์๋ ๋ชฉ์ฐจ ์์ฑ๊ธฐ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๊ธฐ ์ํด ์ฌ์ฉํ์๋ค) ์ด๋์ ๋ ๊ตฌ์กฐ์ ๋ฌธ๋ฒ์ ์๋ ์ํ์ง๋ง ์ ๋ชจ๋ฅด๋ ๊ฒฝ์ฐ ์๋ ์น์ ํ๊ฒ ์ค๋ช ํด๋์ ๊ธ์ ์ฐธ๊ณ ํ๋ฉด ์ข์ ๋ฏ ํ๋ค
๋ฐ๋ก ๊ธฐ๋ฅ์กฐ์ฐจ ์๋๋ฐ, ๊ทธ๋ฅ ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅํ๋ฉด ๊ทธ ๊ฒฝ๋ก๋ฅผ ์ถ๋ ฅํด์ค๋ค
๊ฒฝ๋ก์ ์๋ ๋ฌธ์์ด์ ๊ทธ๋๋ก ์ถ๋ ฅํ๊ณ ์์ผ๋ ์ด์ ์ฐ์ฐ์ ํด๋ณด์
{{6+6}} ์ ๋ฃ์ด์ ์ฐ์ฐ์ด ๋๋ค๋ฉด Jinja(flask์์ ์ฌ์ฉํ๋ ํ ํ๋ฆฟ ์์ง)๋๊น ์ดํ ์์ ์ด ๊ฐ๋ฅํ๋ค
์์ฃผ ์๋๋ค
http://host3.dreamhack.games:19321/{{config}}
๋ฅผ ์ ๋ ฅํ๋๋ config ์ ๋ณด๊ฐ ์ญ ๋์ค๊ณ ์ด ์์ ์๋ secret_key ์ ํ๋๊ทธ๊ฐ ํฌํจ๋์ด์๋ค
#!/usr/bin/python3
from flask import Flask, request, render_template, render_template_string, make_response, redirect, url_for
import socket
app = Flask(__name__)
try:
FLAG = open('./flag.txt', 'r').read()
except:
FLAG = '[**FLAG**]'
app.secret_key = FLAG
@app.route('/')
def index():
return render_template('index.html')
@app.errorhandler(404)
def Error404(e):
template = '''
<div class="center">
<h1>Page Not Found.</h1>
<h3>%s</h3>
</div>
''' % (request.path)
return render_template_string(template), 404
app.run(host='0.0.0.0', port=8000)
๋ฌธ์ ์ฝ๋๋ฅผ ๋ณด๋ฉด FLAG๊ฐ app.secret_key ์ ํฌํจ๋์ด์๊ธฐ ๋๋ฌธ์ config์์ secret_key ๋ฅผ ์ฐพ์๋ณด๋ ๋ฐฉ์์ผ๋ก ํด๋ ๊ฐ๋ฅํ๋ค
'๐ Cyber Security > Web Hacking (์นํดํน)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Dreamhack] ๋๋ฆผํต ์นํดํน: simple_sqli_chatgpt (0) | 2023.11.20 |
---|---|
[Dreamhack] ๋๋ฆผํต ์นํดํน : phpreg (0) | 2023.11.06 |
[DreamHack] ๋๋ฆผํต ์นํดํน : ex-reg-ex (0) | 2023.11.06 |
[Dreamhack] ๋๋ฆผํต ์นํดํน : Flying Chars (2) | 2023.11.03 |
[DreamHack] ๋๋ฆผํต ์นํดํน php-1 (1) | 2023.11.02 |