반응형
https://webhacking.kr/challenge/bonus-4/
Challenge 24
agentfacebookexternalhit/1.1; kakaotalk-scrap/1.0; +https://devtalk.kakao.com/t/scrap/33984
webhacking.kr
[문제]
[풀이]
소스코드를 보자.
<?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>
코드를 보면 client ip 가 127.0.0.1이면 문제가 풀린다.
$ip = $REMOTE_ADDR; 부분을 보고
REMOTE_ADDR 값을 바꾸면 client ip가 바뀐다고 생각할 수 있다.
extract($_COOKIE); 이 코드는 쿠키값을 변수화 시키는 코드이다.
쿠키에 REMOTE_ADDR 쿠키를 추가시켜서 ip를 바꾼다.
확인해보면 ip가 바뀐걸 확인할 수 있다.
소스코드를 다시 확인해보면 REMOTE_ADDR 변수 필터링 코드 부분이 있다.
필터링을 이용해서 ip를 127.0.0.1로 만들면 된다.
문제가 풀린 것을 확인할 수 있다.
반응형