Give me a link write up
2018. 2. 26. 22:26
이런 문제이다. $_GET['url']을 받아서 3개의 분기문(반기문아님)을 거치고 curl을 통해서 flag 를 보내준다.
preg_match('/^https?\:\/\/givemealink.solveme.peng.kr/i', $url);
해당 코드는 url이 http://giveme.link.solveme.peng.kr 로 시작하는지 확인하는 코드이다. 해당 코드대로 url을 보낸다고 하면 givemealink.solveme.peng.kr.local.domain 처럼 서브도메인을 여러개 파거나, SSRF에서 사용하는 트릭을 이용해서 우회할 수 있다. 해당 트릭은 BlackHat 17 에서 발표된 [ A new ara of SSRF ] 라는 자료를 보면 나온다.
preg_match('/_|\s|\0/', $url);
사용자로부터 받은 url값에서 언더바나 공백, Null 문자가 있는지 확인한다. _ 언더바를 우회하는게 관건인데, 그냥 스크립트를 돌려 확인하였다.
찾아보니 많은 문자들로 언더바를 우회할 수 있었다. 나는 이 중에서 http://givemealink.solveme.peng.kr@dimitrust.oa.to/plz%7fgive%7fme를 사용하기로 하였다.
그리고 curl 로 특정 url에 요청을 보내는데, 하필이면 서비스를 운영 중인 80 포트를 이용해서 쏘기 때문에 nc로 확인할 수 없었다. 그냥 로그를 보기로 하였다.
재밌는 문제였다.
'write-ups > solveme.safflower.kr' 카테고리의 다른 글
URL filtering write up (1) | 2018.03.04 |
---|---|
Hell JS write up (0) | 2018.03.04 |
Hash collision write up (0) | 2018.03.04 |
thirty six write up (0) | 2018.02.27 |
solveme.safflower.kr bad compare write up (0) | 2017.11.16 |