article thumbnail image
Published 2021. 9. 29. 16:42

 

old-11 문제화면이다. view-source 링크를 눌러 소스코드를 확인해봤다.

 

<?php
  include "../../config.php";
  if($_GET['view_source']) view_source();
?><html>
<head>
<title>Challenge 11</title>
<style type="text/css">
body { background:black; color:white; font-size:10pt; }
</style>
</head>
<body>
<center>
<br><br>
<?php
  $pat="/[1-3][a-f]{5}_.*$_SERVER[REMOTE_ADDR].*\tp\ta\ts\ts/";
  if(preg_match($pat,$_GET['val'])){
    solve(11);
  }
  else echo("<h2>Wrong</h2>");
  echo("<br><br>");
?>
<a href=./?view_source=1>view-source</a>
</center>
</body>
</html>

 

소스코드에서 눈에 띄는 것은 $pat 변수였다.

$pat 변수와 val파라미터가 같으면 문제를 해결할 수 있다.

 

$pat에는 정규표현식이 들어가 있다.

"/[1-3][a-f]{5}_.*$_SERVER[REMOTE_ADDR].*\tp\ta\ts\ts/"

위 정규표현식을 해석해보자.

 

[1-3] : 1~3 중 한 문자

[a-f] : a~f 중 한 문자

{5} : 앞 문자를 5번 반복    (위 소스 코드 경우 a~f 중 한 문자를 5번 반복)

_ : 그냥 문자

. : 줄바꿈 문자를 제외한 임의의 문자

* : 앞 문자 0번 이상 반복

\t : 탭

 

→ 1aaaaa_127.0.0.1(tab)p(tab)a(tab)s(tab)s    (127.0.0.1)은 본인 IP주소

 

$pat에 들어갈 문자열을 확인했으니 이제 val파라미터에 해당 문자열을 GET방식으로 전달해주면 된다.

 

 

old-11 해결!

 

 

 

 

'Study > Web Hacking' 카테고리의 다른 글

[Webhacking.kr] old-49  (0) 2021.10.09
[Webhacking.kr] old-35  (0) 2021.09.29
[Webhacking.kr] old-46  (0) 2021.09.25
[Webhacking.kr] old-45  (0) 2021.09.25
[Webhacking.kr] old-08  (0) 2021.09.18
복사했습니다!