CTF, 워게임 문제 풀이/webhacking.kr

webhacking.kr 26번 문제 풀이

secumark 2022. 8. 29. 12:50
728x90

<?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>

 

코드는 다음과 같다. id가 admin이면 문제가 해결되는건데.. 문제는 id에  /admin/이라는 문자열이 있으면 no!라고 한다는 것

그러니까 이렇게 하면

 

이르케 된답디다..

 

소스코드를 자세히읽어보면 urldecoding을 한 다음에 사용하고 있다.

admin은 %61%64%6d%69%6e이기 때문에 이렇게 입력해줬는데, 문제 해결이 안되더라.

 

 

 

https://ehdtn1219.tistory.com/108 글을 참고했다.

 

Webhacking.kr 26번 문제풀이

안녕하세요. 웹 해킹 26번 문제풀이 하겠습니다. 코드를 보면 GET방식으로 id 값이 admin일 경우 문제가 해결되는 걸 알 수 있고 GET방식으로 전달받은 id값을 urldecode 해서 다시 id값에 넣고 있는 걸

ehdtn1219.tistory.com

웹 서버브라우저 간의 통신에서, 브라우저는 폼에서 입력받은 데이터를 자동으로 인코딩한 값PHP 서버로 전송하고, PHP는 서버에서 전달받은 인코딩 된 값을 자동으로 디코딩하기 때문

get방식으로 입력한 값은 결국 php에서 자동으로 디코딩한단다.

 

여기서 2번 인코딩해줬다.

 

URL 인코딩 - 온라인 URL 인코더

 

www.convertstring.com

 

 

 

 

728x90