WARGAME/webhacking.kr

webhacking.kr old-26 풀이

msh1307 2022. 5. 18. 22:14

문제


소스 코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?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; }    
{ 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>
 
cs

풀이


브라우저에서 파라미터를 보내면, php는 파라미터를 기본적으로 디코딩해준다. 

소스 코드를 보면, 파라미터를 받고 비교한 뒤, 한번 다시 디코딩을 진행한다. 

그래서 디코딩을 두번 해주면, 기본적으로 디코딩을 한 번이 진행될 것이고, 코드에서 한번 더 진행돼서 최종적으로 admin을 넣을 수 있을 것이다.

%61%64%6D%69%6E를 한번 더 인코딩해주면

%2561%2564%256D%2569%256E가 된다. 

파라미터로 넘겨주면 풀린다.

이미 풀어서 solved가 뜬다.

'WARGAME > webhacking.kr' 카테고리의 다른 글

webhacking.kr old-14 풀이  (0) 2022.05.18
webhacking.kr old-15 풀이  (0) 2022.05.17
webhacking.kr old-6 풀이  (0) 2022.05.17
webhacking.kr old-1 풀이  (0) 2022.05.17