늘모자란, 개발 :: [webhacking.kr] Challenge 26

늘모자란, 개발



이제 문제 생김새에 입대기도 지친다.

<html> 
<head> 
<title>Challenge 26</title> 
<style type="text/css"> 
body { background:black; color:white; font-size:10pt; }     
a { color:lightgreen; } 
</style> 
</head> 
<body> 

<? 

if(eregi("admin",$_GET[id])) { echo("<p>no!"); exit(); } 

$_GET[id]=urldecode($_GET[id]); 

if($_GET[id]=="admin") 
{ 
@solve(26,100); 
} 

?> 


<br><br> 
<a href=index.phps>index.phps</a> 
</body> 
</html> 


정규식 필터링인데, get ID중에 admin을 필터링하고 있다. 근데 solve하려면 admin을 넣어야된다고 한다.
사실 이건 문제같지도 않은게, eregi 밑에 urldecode를 하고 있다. 뭐하라는건진 잘 모르겠는데 urlencode해주면된다.
근데 바로 안된다. 좀 고민을 하다가 두번 인코드하면 어떨까 해서 했더니 된다.

사실 double encode는 알고 있었는데 바로바로 생각이 안나는거보니 멀었다...
이 기법은 유명한 기법인데, OWASP의 XSS Filter Evasion 문서를 참고 하면 도움이 될 것 같다.

2016/03/31 15:41 2016/03/31 15:41