๐๏ธAccess
์ฟ ํค๋ก ์ธ์ฆ ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ๊ฐ๋จํ ๋ก๊ทธ์ธ ์๋น์ค์์
admin ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธ์ ์ฑ๊ณตํ๋ฉด ํ๋๊ทธ๋ฅผ ํ๋ํ ์ ์๋ ๋ฌธ์ ์์ต๋๋ค.
๐พExploit Algorithm & Payload
#!/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)
if username:
return render_template('index.html', text=f'Hello {username}, {"flag is " + FLAG if username == "admin" else "you are not admin"}')
return render_template('index.html')
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'GET':
return render_template('login.html')
elif request.method == 'POST':
username = request.form.get('username')
password = request.form.get('password')
try:
pw = users[username]
except:
return '<script>alert("not found user");history.go(-1);</script>'
if pw == password:
resp = make_response(redirect(url_for('index')) )
resp.set_cookie('username', username)
return resp
return '<script>alert("wrong password");history.go(-1);</script>'
app.run(host='0.0.0.0', port=8000)
#1
: users์ guest์ admin์ด ์๋ ๊ฒ์ ์ฝ๋์์ ํ์ธํ ์ ์์๋ค.
users = { 'guest': 'guest', 'admin': FLAG }
#2
: guest ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธ ์ฑ๊ณตํ์๋ค.
:๋ฌธ์ ์์ ์ ์ํ ๊ฒ์ฒ๋ผ admin ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธ ๋์ด์ผ ํ๋๊ทธ๋ฅผ ํ๋ํ ์ ์์ผ๋ฏ๋ก ํ์ฌ guest ์ฌ์ฉ์์ ์ฟ ํค ๊ฐ์ ํ์ธํ์๋ค.
:๊ฐ์ guest๋ก ํ์ธํ ์ ์์๋ค. ์ฆ, ๋น๋ฐ๋ฒํธ๊ฐ ๊ทธ๋๋ก ์ฟ ํค์ ๋ด๊ฒจ ์๋ ๊ฒ์ ํ์ธํ ์ ์์๋ค.
#3
: ์ฟ ํค๊ฐ์ admin์ผ๋ก ๋ณ์กฐํ์๋๋ ํ๋๊ทธ๋ฅผ ํ๋ํ ์ ์์๋ค.
๐Analysis and results for obtaining the Flag DH{…}
๐Summary
|์ฟ ํค๋ ํด๋ผ์ด์ธํธ์ ์ ์ฅ| ์๋ฒ์ ๊ฒ์ฆ ์์ด ์ฟ ํค๋ฅผ ์ ๋ขฐํ๊ณ ์ธ์ฆ ์ ๋ณด๋ฅผ ์๋ณํ ๋ ๋ฐ์ํ๋ ๋ฌธ์ ๋ผ๊ณ ๋ณผ ์ ์์
๋ฐ๋ผ์ ์ฟ ํค๊ฐ์ ๋ณ์กฐํ์ฌ ๊ณ์ ์ ๊ถํ์ ์ป์ ์ ์์
|์ธ์ ์ ์๋ฒ์ ์ ์ฅ|
์์ ๊ฐ์ ๊ฒฝ์ฐ๋ ์ธ์ ์ ์ด์ฉํ์ฌ ํด๊ฒฐํ ์ ์์
์ฟ ํค์๋ ๋ฌ๋ฆฌ ์ธ์ฆ ์ ๋ณด๋ฅผ ์๋ฒ์ ์ ์ฅํ๊ณ , ๋๋ค ํค๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ๋ฐ๊ธ
ํ์ง๋ง, ๋ฌด์กฐ๊ฑด ํด๊ฒฐ์ ์๋
์๋ฒ์ ์์ฒญ์ ๋ณด๋ด๋ ์ฌ์ฉ์๊ฐ ๋ง์ ๊ฒฝ์ฐ ์ธ์ ์ ๋ถํ๊ฐ ์ฌํ๊ฒ ๋ฐ์ํ ์ ์์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ธฐ๋ ํ๊ณ , ์น ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฒ์ ์ ์ํด ๋ธ๋ผ์ฐ์ ๋ฅผ ์ข ๋ฃํ ๋๊น์ง ์ธ์ ์ ์ ์งํ๊ธฐ ๋๋ฌธ์ ์ธ์ ํ์ด์ฌํน(session hijacking attack)์ด ๋ฐ์ํ ์๋ ์์
์ฟ ํค์ ์ธ์ ์ ์ฌ์ฉ ์ฌ๋ถ์ ๋ง๋ ๋ชฉ์ , ๋ฐ์ดํฐ๋, ๋ณด์ ์๊ตฌ์ฌํญ ๋ฑ์ ๋ค์ํ ์๊ตฌ์ฌํญ์ ๋ง๊ฒ ๊ณ ๋ คํ์ฌ ๊ฒฐ์ ํ๊ณ ์ฌ๋ฌ ๋ฐฉ๋ฒ์ ์ฐพ์์ ์ด๋ฅผ ํด๊ฒฐํด์ผ ํจ
'[Dreamhack]WebHacking > ๋ก๋๋งต_Basic' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Dreamhack] Level1: csrf-2 (0) | 2023.08.21 |
---|---|
[Dreamhack] Level1: csrf-1 (0) | 2023.08.21 |
[Dreamhack] Level1: xss-2 (0) | 2023.08.19 |
[Dreamhack] Level1: xss-1 (0) | 2023.08.19 |
[Dreamhack] Level1: Session-basic (0) | 2023.08.17 |