반응형
이 문제도 처음보는 유형이라 좀 고민을 많이 했었다.
첫화면이다.
client ip와 agent 가 보인다.
주요 코드 부분은 아래와 같다.
<?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>";
}
ip가 127.0.0.1 이 문제가 풀리는 조건이다.
$_COOKIE에서 $REMOTE_ADDR값을 가져오는 것같다.
그러므로 하지만 사이트 초기에는 REMOTE_ADDR값을 가져올 cookie가 없으므로 cookie를 생성해야한다.
이때 filtering rule을 우회해야한다.
localhost 로 시도해보았지만 localhost로 안풀리기에 이전에 XSS풀 때, 활용했던 bypass기법을 활용하기로 하였다.
일부러 필터링으로 공백처리되는 것을 이용하여 문자열을 중복되게 만드는 것이다.
그럼 결국 112277.00.00.1이 우회가능한 ip가 된다.
로그인해달라고 떠서 다시 로그인한 이후에 문제에 들어가니 풀렸다.
===============================================
아마 localhost가 안되었던 이유에 대해서는 아래의 사이트를 참고하여 본 이유 때문이지 않을까 추측해본다.
https://www.baeldung.com/cs/127-0-0-1-vs-localhost
===============================================
반응형
'webhacking.kr' 카테고리의 다른 글
webhacking.kr [old-25] (0) | 2023.07.15 |
---|---|
webhacking.kr [old-27] (0) | 2023.07.15 |
webhacking.kr [old-05] (0) | 2023.07.13 |
webhacking.kr [old-54] (0) | 2023.07.13 |
webhacking.kr [old-10] (0) | 2023.07.13 |