티스토리 뷰
index.phps를 누르고 들어가보면
<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이면 문제가 풀리는데
if(eregi("admin",$_GET[id])) { echo("<p>no!"); exit(); }
$_GET[id]=urldecode($_GET[id]);
에서 urldecode가 있어서 admin을 인코딩해서 넣어보았다. 하지만 문제가 안 풀렸다.
admin을 인코딩하면 %61%64%6d%69%6e인데
알고보니 주소창에서 %61%64%6d%69%6e값은 url이라 디코드를 하면 admin이 나와 eregi함수에 걸려서 안된다는 것이다.
따라서 %61%64%6d%69%6e한번 더 인코딩한 %2561%2564%256d%2569%256e값을 하면 url이라 디코드를 한 뒤에 %61%64%6d%69%6e이 되므로 eregi함수에 안 걸려 그때 urldecode를 하여 admin이 되는 것이다.
그래서
이 된다.
'webhacking' 카테고리의 다른 글
| 웹해킹 문제 25번 (0) | 2017.12.04 |
|---|---|
| 웹해킹 문제 42번 (0) | 2017.11.06 |
| 웹해킹 문제 24번 (0) | 2017.11.05 |
| 웹해킹 문제 6번 (0) | 2017.10.22 |
| 웹해킹 문제 4번 (0) | 2017.10.22 |
