Hacking (CTF)/CTF

[Dreamhack/드림핵] simple-web-request

gapsoo 2024. 5. 15. 09:05

https://dreamhack.io/wargame/challenges/830

 

🌱 simple-web-request

Description STEP 1~2를 거쳐 FLAG 페이지에 도달하면 플래그가 출력됩니다. 모든 단계를 통과하여 플래그를 획득하세요. 플래그는 flag.txt 파일과 FLAG 변수에 있습니다. 플래그 형식은 DH{...} 입니다. 📜

dreamhack.io


[1] 문제 풀기

 

 

 

 

 

 

 

STEP1의 페이지이다.

 

뭘 입력해야 하는지 모르겠어서

 

STEP2, FLAG 페이지도 들어가봤는데

 

 

아직은 뭘 할 수 없나보다.

 

 

일단 STEP1 페이지로 돌아가서,

 

아무값이나 입력해보았는데, 그대로 파라미터가 출력되는 것을 볼 수 있다.

 

여기에서 알 수 있는 게 없어서 문제 파일을 확인해주었다.

 

 

여기에서,

파라미터1은 "getget"일 때, 파라미터2는 "rerequest" 일 때, 다음 단계로 넘어갈 수 있는 듯 하다.

 

 

다음 단계로 넘어가게 되었다.

 

 

 

이 부분을 보고,

파라미터1에 "pooost" 그리고 파라미터2에 "requeeest"를 입력했다.

 

 

그랬더니 플래그 값이 나왔다...


어떤 취약점이 이 문제의 핵심일까 궁금해서 찾아보았다.

 

본 문제는 웹앱 프레임워크 Flask로 작성된 웹 페이지로, 이를 달성하려면 HTTP 요청을 보내는 방법을 알고, Python으로 작성된 웹앰 코드를 이해할 수 있어야 한다. 본 문제를 통해 GET요청과 POST 요청의 차이를 학습하고 Python 코드를 해석하는 능력을 키울 수 있다.

 

참고: https://blog.naver.com/smart-brain/223129700848

 

웹 페이지 동작 방식의 간단한 개념을 응용한 문제였던 것 같다.