Webhacking.kr 11번 문제풀이

동스토리 ㅣ 2020. 11. 8. 22:58

반응형

안녕하세요

웹 해킹 11번 문제 풀이하겠습니다.

 

소스를 열어보면,

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

 

[Line: 14~21] php코드에서

 

if(preg_match($pat,$_GET['val'])): GET방식으로 전달하는 val의 값과 pat변수가 일치하면 문제를 해결할 수 있다는 것을 알 수 있습니다.

 

pat변수는 정규표현식으로 표현되어 있는데

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


[1-3]: 1에서 3까지 하나의 숫자

 

[a-f]{5}_: a에서 f까지 5개의 문자 + "_"

 

.* ~ .*: .* 뒤에 0개 이상의 문자열을 .*이 나올 때까지 반복

 

$_SERVER[REMOTE_ADDR]: 웹 서버의 접속한 클라이언트 IP

 

\t: tab(탭) 인코딩 값: %09


 

 

 

감사합니다.

 

 

 

반응형

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

Webhacking.kr 13번 문제풀이  (7) 2020.11.16
Webhacking.kr 12번 문제풀이  (0) 2020.11.09
Webhacking.kr 10번 문제풀이  (0) 2020.11.08
Webhacking.kr 9번 문제풀이  (0) 2020.11.07
Webhacking.kr 8번 문제풀이  (0) 2020.11.03