SSRF(Server Side Request Forgery)공격 테크닉 중에 Gopher 프로토콜을 이용한 것들이 몇 가지 있다.

 

이러한 테크닉들을 살펴보기 전에 일단 Gopher 프로토콜이 어떤식으로 생겨먹었는지를 한번 분석해보고자 한다.

 

문서를 보는 것 보다는 실제로 보는게 나으므로, 일단 구름 IDE를 이용해서 포트를 하나 연다.

원격에 임의의 포트를 하나 열 수 있게 된다.

그리고 nc로 포트를 열고 기다린다. 로컬에서 한번 없는 IP에 테스트를 해볼려고 했는데, TCP기반이라서 연결이 안되면 프로토콜을 볼 수가 없다.

요런식으로 보내보니, 서버에선 이렇게 나온다.

T는 잘리고 estPayload가 들어간 모습. URL스펙은 그대로 따를테니 URL encoding 해서 뭔가 임의의 값들을 보낼 수 있지 않을까? 하는 생각이 들었다.

 

와이어샤크에서 실제로 보낸 TCP payload를 보아도 그냥 estPayload만 보내졌다. (음? 당연한건가?? ㅋㅋㅋㅋ)

이걸 이용하면 1 stage TCP arbitrary packet send and receive는 가능할 것 같다.

+ Recent posts