반응형
https://webhacking.kr/challenge/code-2/
Challenge 11
webhacking.kr
[문제]
[풀이]
<?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 변수에 아이피를 포함한 정규 표현식이 저장된다.
val이라는 변수를 받고 pat과 매치된다면 문제가 풀린다.
정규 표현식을 해독하면 쉽게 문제가 풀린다.
[1-3] 1에서 3 사이 아무 숫자를 선택한다.
[a-f]{5} a부터 f까지의 문자를 5개 연속으로 선택한다.
_ 밑줄 문자 포함
.* 문자열
$_SERVER[REMOTE_ADDR] 아이피를 입력한다.
\t Tab
p p문자
a a문자
s s문자
위 사항을 지켜서 문자열을 만들면
1abcde_아이피%09p%09a%09s%09s
문자열이 완성된다.
문제가 풀린다.
반응형