WarGame/Webhacking.kr

[Webhacking.kr] old-26 Answer

Old-26 Domain & Tool

  • 구분 : 코드 읽기
  • 문제풀이에 사용된 도구 
    • Chrome 103.0.5060.66 

 


Old-26 Question & Answer

view_source 한 버튼만 있는 문제이다. source를 친절하게 확인하라고 a태그를 걸어주었으니, 확인해보자

<?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이라는 파라미터를 id값으로 넘기면 되는데, 이를 urldecode한 값이 admin이면 된다. 근데 이 admin은 urldecode하기전에 preg_match로 필터링된다. 

 

우선 admin의 urlencodeing 값은 %61%64%6D%69%6E 이다. 단 이 값이 id로 들어가서 서버에 입력될때는 자동으로 urldecode가 이루어진다. 

url로 전송되며 자동 decode된 모습

그러니, 어짜피 코드에 urldecode가 한번더 있음을 착안해서 %61%64%6D%69%6E 이 값의 url encoding을 한번 재수행해서 전송하자 해당 값은 %2561%2564%256D%2569%256E 이다.

 

NICE

'WarGame > Webhacking.kr' 카테고리의 다른 글

[Webhacking.kr] old-28 Answer  (0) 2022.07.29
[Webhacking.kr] old-27 Answer  (0) 2022.07.28
[Webhacking.kr] old-25 Answer  (0) 2022.07.28
[Webhacking.kr] old-24 Answer  (0) 2022.07.27
[Webhacking.kr] old-23 Answer  (0) 2022.07.27