
무슨 문제일까?
<?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>
소스 코드다.
admin 문자열을 정규표현식으로 필터링하고 있다.
근데 admin 값을 그대로 전달해야 한다.
처음에는 %61%64%6D%69%6E 로 넣었는데,
생각해보니 URL로 들어갈 때 자동으로 한 번 디코딩이 진행되니까
소스 코드 상의 디코딩까지 고려해서 이중 인코딩을 했어야 했다.
따라서
%2561%2564%256D%2569%256E 를 넣어주면

풀었다!
'Web > webhacking.kr' 카테고리의 다른 글
| Webhacking.kr old-54 (0) | 2025.03.18 |
|---|---|
| Webhacking.kr old-18 (0) | 2025.03.17 |
| Webhacking.kr old-06 (0) | 2025.03.17 |
| Webhacking.kr old-24 (0) | 2025.03.17 |
| Webhacking.kr old-17 (0) | 2025.03.17 |