문제에 접속하면 그냥 view-source 하나만 덩그러니 있어서 바로 확인해보았다.
<?php
include "../../config.php";
if($_GET['view_source']) view_source();
?><html>
<head>
<title>Challenge 26</title>
<style type="text/css">
body { background:black; color:white; font-size:10pt; }
a { color:lightgreen; }
</style>
</head>
<body>
<?php
if(preg_match("/admin/",$_GET['id'])) { echo"no!"; exit(); }
$_GET['id'] = urldecode($_GET['id']);
if($_GET['id'] == "admin"){
solve(26);
}
?>
<br><br>
<a href=?view_source=1>view-source</a>
</body>
</html>
GET 방식으로 받아온 id의 urldecode 값이 admin이면 풀린다.
근데 preg_match 때문에 /admin/에 id가 들어있으면 안된다.
admin을 url 인코딩 표로 보고 인코딩 된 값으로 바꾸면 %61%64%6d%69%6e 이렇게 나온다.
근데 이걸 url에 그대로 쳐도 자동으로 디코딩이 되면서 admin으로 바뀐다.
%61%64%6d%69%6e 이 값을 한번 더 인코딩 해 보면 %2561%2564%256d%2569%256e
이걸 id로 넣어주면
풀린다.
'웹해킹 > webhacking.kr' 카테고리의 다른 글
old-32 롸업(webhacking.kr) (0) | 2023.12.08 |
---|---|
old-27 롸업(webhacking.kr) (0) | 2023.12.07 |
old-25 롸업(webhacking.kr) (0) | 2023.12.07 |
old-24 롸업(webhacking.kr) (0) | 2023.12.06 |
old-23 롸업(webhacking.kr) (0) | 2023.12.06 |