[Dreamhack/드림핵] simple-web-request
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
웹 페이지 동작 방식의 간단한 개념을 응용한 문제였던 것 같다.