본문 바로가기
웹 해킹/webhacking.kr

webhacking.kr 26번

by sonysame 2018. 2. 9.

<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> 


eregi가 다시 등장했다!
문자열 필터링 함수!

admin이 있으면 안된다.

urldecode해서 admin이 되어야 한다.


id에 %61%64%6d%69%6e을 주면 안된다! 자동으로 decoding이 되어 eregi에 의해 필터링되기 때문이다.

이를 해결하기 위해 한번 더 인코딩을 해주는 것이다. 즉, %2561%2564%256d%2569%256e 를 넣어주면

디코딩되어 %61%64%6d%69%6e이 될 것이기 때문에 eregi에 의해 필터링되지 않는다.

다시 한번 urldecode가 일어나고 그러면 admin이 될 수 있다.


http://webhacking.kr/challenge/web/web-11/?id=%2561%2564%256d%2569%256e



'웹 해킹 > webhacking.kr' 카테고리의 다른 글

webhacking.kr 39번  (0) 2018.02.09
webhacking.kr 38번  (0) 2018.02.09
webhacking.kr 24번  (0) 2018.02.09
webhacking.kr 18번-SQL INJECTION  (0) 2018.02.07
webhacking.kr 16번  (0) 2018.02.07