본문 바로가기
CTF/Dreamhack

[Dreamhack] proxy-1

by 8희 2023. 5. 24.

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

 

proxy-1

Raw Socket Sender가 구현된 서비스입니다. 요구하는 조건을 맞춰 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. Reference Introduction of Webhacking

dreamhack.io

 

proxy 문제로 Raw Socket Sender가 구현된 서비스라고 한다.

Raw Socket은 어느 특정한 프로토콜 용의 전송 계층 포맷팅 없이 인터넷 프로토콜로 

패킷을 직접적으로 주고 받게 해 주는 소켓이다.

 

 

문제 접속 시 첫 화면이다.

 

 

 

Raw Socket Sender 링크를 클릭하면 host, port, data를 입력하여 보낼 수 있는 화면이 뜬다.

 

 

socket 페이지에서 send 버튼을 누르면 host, port, data가 전송된다.

 

 

admin 페이지에서 전송된 패킷이 조건이 부합되면 return 값으로 플래그를 출력한다.

조건은 다음과 같다.

 

1. request.remote_addr=127.0.0.1

클라이언트 ip가 127.0.0.1 인지 확인한다.

 

2. request.headers.get('User-Agent')=Admin Browser

User-Agent 헤더 값이 Admin Browser 인지 확인한다.

 

3. request.headers.get('DreamhackUser')=admin

DreamhackUser 라는 헤더의 값이 admin 인지 확인한다.

 

4. request.cookies.get('admin')=true

admin 이라는 쿠키 값이 true 인지 확인한다.

 

5. request.form.get('userid')=admin

POST body의 userid 라는 파라미터 값이 admin 인지 확인한다.

 

따라서 Raw Socket Sender를 이용하여 로컬 단에서 admin 페이지에 Data를 전달하도록 할 것이다.

 

 

host: 127.0.0.1 

port: 8000

DATA:

POST /admin HTTP/1.1
Host: host3.dreamhack.games:21354
User-Agent: Admin Browser
DreamhackUser: admin
Cookie: admin=true
Content-Type: application/x-www-form-urlencoded
Content-Length: 12

userid=admin

 

플래그 값을 얻었다!

 

'CTF > Dreamhack' 카테고리의 다른 글

[Dreamhack] shell_basic  (0) 2023.05.30
[Dreamhack] RSA-wiener  (1) 2023.05.30
[Dreamhack] Basic_Crypto1  (0) 2023.05.24
[Dreamhack] xss-2  (0) 2023.05.23
[Dreamhack] dreamhack-tools-cyberchef  (0) 2023.05.16