뭐 한것도 없는데 아이피가 틀렸다고 나온다.
이대론 뭘 해야할지 감도 안온다. 주석을 보니 index.phps를 보라고 되어 있다. 한번 보자
<? extract($_SERVER); extract($_COOKIE); if(!$REMOTE_ADDR) $REMOTE_ADDR=$_SERVER[REMOTE_ADDR]; $ip=$REMOTE_ADDR; $agent=$HTTP_USER_AGENT; if($_COOKIE[REMOTE_ADDR]) { $ip=str_replace("12","",$ip); $ip=str_replace("7.","",$ip); $ip=str_replace("0.","",$ip); } 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(); } else { echo("<p><hr><center>Wrong IP!</center><hr>"); } ?>
한줄씩 읽어보면
extract는 배열을 변수화 시켜주는것으로 SERVER와 COOKIE 값을 변수로 쓰겠다는거고, REMOTE_ADDR이 설정안되있으면 서버의 값에서 넣겠다는 말이다.
아이피를 로컬호스트 처럼 127.0.0.1 로 만들어야되는데 아파치가 받는 $_SERVER 변수를 속일 순 없다.
결국 $_COOKIE 구문의 필터링을 패스해야 solve되는데, cookie에서 필터링을 하고 있다.
REMOTE_ADDR이라는 쿠키를 만들어서 127.0.0.1 을 넣어보자 될린 없겠지만 결과나 보자.
생각보다 결과가 더 비참하다. 어떻게 해야 패스할 수 있을까?
127.0.0.1 을 입력하면 일단 12가 사라져서 7.0.0.1이 된다 그리고 7.이 사라져서 0.0.1이 되고 마지막으로 0.이 사라져서 1이 남는다
그렇다면 112277..00..00..1 이런식으로 입력하면 된다. 필터링은 딱 한번만 패스하기 되기때문이다.
쿠키에 값을 적어주고 패스하자. 사실 쉬운것처럼 적어놨지만 머리가 빡대가리라 한참고민했다... ㅡㅡ