반응형
https://dreamhack.io/wargame/challenges/266
문제 설명보니 admin계정으로 로그인 성공하면 플래그 획득이 가능하다고 한당
로그인으로 들어가 보겠음
admin 계정이면 된다해서 아이디 비번에 둘다 admin 쳐봤는데 password가 틀렸다고 한다.
주어진 문제 파일을 한번 까봤다
#!/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',
'user': 'user1234',
'admin': FLAG
}
session_storage = {
}
@app.route('/')
def index():
session_id = request.cookies.get('sessionid', None)
try:
username = session_storage[session_id]
except KeyError:
return render_template('index.html')
return render_template('index.html', text=f'Hello {username}, {"flag is " + FLAG if username == "admin" else "you are not admin"}')
@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')) )
session_id = os.urandom(4).hex()
session_storage[session_id] = username
resp.set_cookie('sessionid', session_id)
return resp
return '<script>alert("wrong password");history.go(-1);</script>'
if __name__ == '__main__':
import os
session_storage[os.urandom(1).hex()] = 'admin'
print(session_storage)
app.run(host='0.0.0.0', port=8000)
코드 보니까 guest 로그인이랑 user 로그인은 아이디 비밀번호 있길래 해봄
일케 뜬다..
맨 아래 if __name__ == '__main__':
쪽 부분 보면 1바이트 길이의 임의의 바이트 생성해서 admin에 매핑하는걸로 보인다. 이게 admin 비번이 될 듯.
1부터 쭉 해보면 되는데 귀찮으니까 버프 스위트 써서 intruder 기능 쓰면 될거같음
https://yenas0.tistory.com/196
이 문제에서 쓴 기능이니 방법 참고하면 될거같다.
이거 묶어서 intruder쓰면 된다..
1바이트니 이백오십육개...
length 다른거 찾아서 세션id값 구하고 버프스위트나 개발자도구에서 넣으면 문제는 풀린다.
프록시 돌리면 인터넷 잘 안돼서 실시간으로 글쓰기 귀찮아서 중간이 많이 생략^~^ 엣큥~
8번 문제에 자세히 설명해뒀읍니다.
반응형
'학회_공부해요 > 워게임' 카테고리의 다른 글
[SuNiNaTas(써니나타스)] Write up - 19번 (0) | 2024.08.27 |
---|---|
[SuNiNaTas(써니나타스)] Write up - 18번 (0) | 2024.08.27 |
[SuNiNaTas(써니나타스)] Write up - 14번 (0) | 2024.08.06 |
[Tool] Jogh the Ripper(존더리퍼) (0) | 2024.08.06 |
[Dreamhack(드림핵)] Write up - phpreg (0) | 2024.07.30 |