본문 바로가기
웹/드림핵

proxy-1

by SH_L 2022. 5. 4.
반응형

[문제]

 

 

[풀이]

 

 

문제에 접속하면 다음과 같은 화면이 나타난다.

 

 

Raw Socket Sender (Done) 화면으로 이동한 다음에 host, port, Data에 각각 127.0.0.1, 80, data를 입력하고 Send 버튼을 눌러주었다.

 

 

Send 버튼을 누르니 다음과 같은 오류가 출력된다. 문제 이름 자체가 proxy이기 때문에 한 번 해당 패킷을 Burp Suite을 통해 살펴보자.

 

 

Burp Suite로 살펴보았지만 주의 깊게 살펴보아야 하는 것은 보이지 않았다. 소스 코드를 살펴보자.

 

 

socket 페이지에서 send 버튼을 부르면 host, port, Data가 전송이 되는 것을 알 수 있다.

 

 

admin 페이지에서 전송된 패킷이 조건에 부합할 경우에 플래그를 출력한다. 이때, 요구되는 조건은 아래와 같다.

 

1. request.remote_addr=127.0.0.1

-> 클라이언트 ip127.0.0.1 인지 확인한다.

 

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

-> User-Agent header 값이 Admin Browser 인지 확인한다.

 

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

-> DreamhackUser라는 header의 값이 admin 인지 확인한다.

 

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

-> admin이라는 cookie 값이 true 인지 확인한다.

 

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

-> POST bodyuserid 라는 파라미터 값이 admin 인지 확인한다.

 

 

5가지 조건을 모두 만족하는 payloadBurp Suite로 살펴보았던 패킷을 참고하여 다음과 같이 작성하였다.

 

 

Burp Suite를 이용하여 작성한 payloadhost에게 전송해주었다.

 

 

하지만 Response"Only localhost"라는 문자열이 출력된다. 첫 번째 조건을 생각하지 못 하고 무작정 Burp Suite를 사용했는데 request.remote_addr=127.0.0.1를 만족하지 않기 때문에 Burp Suite를 사용하는 것이 아니라, 문제에 나와 있는 Raw Socket Sender (Done) 화면에 직접 payload를 작성하여 전송하는 방식으로 문제를 해결해야 하는 것 같다.

 

 

Raw Socket Sender (Done) 화면에 직접 payload를 작성했다.

 

 

Send 버튼을 누르자 화면에 플래그가 출력된다.

반응형

' > 드림핵' 카테고리의 다른 글

simple-ssti  (0) 2022.05.10
php-1  (0) 2022.05.04
pathtraversal  (0) 2022.05.01
NoSQL-CouchDB  (0) 2022.05.01
sql injection bypass WAF Advanced  (0) 2022.04.24