728x90
소스코드는 다음과 같다.
<?php
include "../../config.php";
if($_GET['view_source']) view_source();
?><html>
<head>
<title>Challenge 24</title>
</head>
<body>
<p>
<?php
extract($_SERVER);
extract($_COOKIE);
$ip = $REMOTE_ADDR;
$agent = $HTTP_USER_AGENT;
if($REMOTE_ADDR){
$ip = htmlspecialchars($REMOTE_ADDR);
$ip = str_replace("..",".",$ip);
$ip = str_replace("12","",$ip);
$ip = str_replace("7.","",$ip);
$ip = str_replace("0.","",$ip);
}
if($HTTP_USER_AGENT){
$agent=htmlspecialchars($HTTP_USER_AGENT);
}
echo "<table border=1><tr><td>client ip</td><td>{$ip}</td></tr><tr><td>agent</td><td>{$agent}</td></tr></table>";
if($ip=="127.0.0.1"){
solve(24);
exit();
}
else{
echo "<hr><center>Wrong IP!</center>";
}
?><hr>
<a href=?view_source=1>view-source</a>
</body>
</html>
쉽게 요약하면 ip주소가 127.0.0.1이면 문제가 풀리고, 그렇지 않으면 wrong IP라고 한다.
그리고 ..는 ., 12는 공백, 7.은 공백, 0.은 공백을 만들어버리는 str_replace 함수를 사용하고 있다.
일단.. 쿠키를 하나 더 만들어보자.
REMOTE_ADDER이라고 만들어놓고 값을 127.0.0.1로 넣으면
1로 바뀐다. 아까 ..과 12, 7., 0.을 치환해버리기 때문에..
나름 값을 생각해서 : 112277..00..00..1 이렇게 넣어봤는데
.이 안 나온다. 🤔
아 그러고보니까 ..도 .으로 치환해버린다고 했는데, 그러면 77..이 되면 77..에서 ..관련 코드가 더 위에 있으니까 .. -> .로 바뀌어버리고, 77.은 7로 치환되는 것!
성공!
* 참고로 쿠키 이름을 REMOTE_ADDER라고 지어주지 않으면 안된다.
728x90
'CTF, 워게임 문제 풀이 > webhacking.kr' 카테고리의 다른 글
webhacking.kr 26번 문제 풀이 (0) | 2022.08.29 |
---|---|
webhacking.kr 25번 문제 풀이 (0) | 2022.08.29 |
webhacking.kr 23번 문제 풀이 (0) | 2022.08.27 |
webhacking.kr 21번 문제 (풀이 x) (0) | 2022.08.27 |
webhacking.kr 20번 문제 풀이 (0) | 2022.08.27 |
댓글