[HackCTF] LOL 풀이 (300p)
Wargame/HackCTF

[HackCTF] LOL 풀이 (300p)

 

 

문제 종류 - Web
사용한 툴 - 

 

풀이

local이 아니라고는 하는데.. 일단, just play have fun enjoy the game을 눌러보자.

 

user에 qwer을 입력해보자.

 

LOL 전적검색 사이트에 닉네임이 검색된다.

이번엔 아무 말이나 다시 입력해보자.

 

제출을 누르면 다음과 같은 오류 메시지가 나타난다.

 

Warning: file_get_contents(http://www.op.gg/summoner/userName=ㄴㅁㅇㄴㅇㅁㄴㅇㄹ): failed to open stream: HTTP request failed! HTTP/1.0 400 Bad request in /var/www/html/index.php on line 25
somethings wrong

 

file_get_contents 함수를 사용해 값을 읽어오나 보다.

file_get_contents 함수와 url 값을 조작하면 flag.php의 내용을 볼 수 있지 않을까 싶다.

내용을 다음과 같이 변경해봤다.

 

그 후, flag.php를 입력해보자.

그러면, file_get_contents 함수가 다음 내용을 출력한다.

 

Nonononononono~

 

임의로 다른 사이트에 접근하면 오류 메시지를 띄우는 것 같다.

그러면 url을 조작하지 않고, 오히려 이용해 공격을 시도해보자.

여기서 사용되는 공격 기법은 SSRF 취약점이다.

 

현재 쿼리문은 다음과 같다.

http://ctf.j0n9hyun.xyz:2035/?query=<>&url=http://www.op.gg/summoner/userName= 

 

이 쿼리문을 @를 이용해, 다른 도메인으로 우회하여 접속 해보자.

http://ctf.j0n9hyun.xyz:2035/?query=/&url=http://www.op.gg@naver.com

정상적으로 접속이 된 모습이다.

이를 통해 첫 화면에서 요구한 local 접속이 가능할 듯하다.

 

쿼리문을 다음과 같이 바꿔보자.

http://ctf.j0n9hyun.xyz:2035/?query=/flag.php&url=www.op.gg@localhost

 

> Nop 라는 오류 메시지를 출력한다. 아마도 localhost나 127.0.0.1이 filtering 되는 듯하다.

   localhost 대신 127.0.0.1 to hex 값을 넣어보자. (0x7f000001)

 

 

 

 

 

 

 

'Wargame > HackCTF' 카테고리의 다른 글

[HackCTF] Wise Saying 풀이 (350p)  (0) 2020.07.11
[HackCTF] Authenticate 풀이 (350p)  (0) 2020.07.11
[HackCTF] Cookie 풀이 (300p)  (0) 2020.05.27
[HackCTF] 가위바위보 풀이 (200p)  (0) 2020.05.26
[HackCTF] Login 풀이 (100p)  (0) 2020.05.26