728x90
첫 화면은 client ip부분이 이상하게 되어 있다.. Wrong IP!
소스를 보면
<?php
include "../../config.php";
if($_GET['view_source']) view_source();
?><html>
<head>
<title>Challenge 24</title>
</head>
<body>
<p>
<?php
extract($_SERVER); #extract() 함수는 배열의 값을 변수로 꺼내주는 역할을 한다.
extract($_COOKIE);
$ip = $REMOTE_ADDR;
$agent = $HTTP_USER_AGENT;
if($REMOTE_ADDR){
$ip = htmlspecialchars($REMOTE_ADDR);
#이 부분에서 ..은 .으로, 12, 7., 0.은 공백으로 치환한다.
$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"){ #테이블의 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>
먼저 EditThisCookie 툴을 사용하여, REMOTE_ADDR이라는 이름의 쿠키를 생성해주고
치환 조건이
".." -> "."
"12" -> ""
"7." -> ""
"0." -> ""
이므로 이를 우회하여 ip를 127.0.0.1로 변조시키기위해
112277...0...0...1
로 값을 넣어준다.
끝!
728x90
'Wargame > webhacking.kr' 카테고리의 다른 글
Challenge old 54 (100) (0) | 2019.10.13 |
---|---|
Challenge old 39 (100) (0) | 2019.10.08 |
Challenge old 14 (100) (0) | 2019.10.01 |
[미완] Challenge old 38 (100) (0) | 2019.10.01 |
Challenge old 6 (100) (0) | 2019.09.24 |