반응형
webhacking.kr 문제 풀이 / Challenge(old) - 26번 문제 (100)
아래 코드를 보면 두번째 php 코드가 중요해 보입니다.
$_GET['id']가 /admin/ 패턴일 경우에는 "no!"를 출력하고 종료됩니다.
urldecode($_GET['id']) 함수로 반환된 문자열이 "admin"이면 solve() 함수를 call하게 됩니다.
urldecode($_GET['id']) 함수가 "admin"이 반환할 수 있도록 "admin"을 url로 인코딩하여 입력해 보겠습니다.
<?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>
url 코드는 아래 표를 이용해보겠습니다.
admin은 url 코드로 %61%64%6d%69%6e인데, 이 값을 입력해보겠습니다.
%61%64%6d%69%6e를 입력해도 preg_match()함수에서 디코딩 되어 "no!"를 출력하는 것으로 보입니다.
%61%64%6d%69%6e를 한번 더 인코딩해서 입력해 보도록 하겠습니다.
%61%64%6d%69%6e를 인코딩하면, %2561%2564%256d%2569%256e 이 됩니다.
이 값을 넣어보도록 하겠습니다.
그러면 100점을 획득한 것을 볼 수 있습니다.
반응형
'WarGame > webhacking.kr' 카테고리의 다른 글
webhacking.kr 문제 풀이 / Challenge(old) - 16번 문제 (100) (0) | 2020.10.20 |
---|---|
webhacking.kr 문제 풀이 / Challenge(old) - 24번 문제 (100) (0) | 2020.10.19 |
webhacking.kr 문제 풀이 / Challenge(old) - 18번 문제 (100) (0) | 2020.10.18 |
webhacking.kr 문제 풀이 / Challenge(old) - 17번 문제 (100) (0) | 2020.10.16 |
webhacking.kr 문제 풀이 / Challenge(old) - 15번 문제 (50) (0) | 2020.10.16 |