본문 바로가기

wargame/WEBHACKING.kr

[WEBHACKING.kr]24

24

24번 문제. IP주소와 사용자 환경이 뜬다.

코드를 확인해보자.

<html>
<head>
<title>Challenge 24</title>
</head>
<body>
<table border=1><tr><td>client ip</td><td>[IP주소]</td></tr><tr><td>agent</td><td>Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36</td></tr></table><p><hr><center>Wrong IP!</center><hr>


<!--

source : index.phps

-->

</body>
</html>


단서가 없다. index.phps로 이동해서 살펴보자.

<html>
<head>
<title>Challenge 24</title>
</head>
<body>
<?

extract($_SERVER); // $_SERVER 배열의 키 값을 변수로 만든다 (키 값으로 $REMOTE_ADDR, $HTTP_USER_AGENT 등이 존재한다)
extract($_COOKIE); // $_COOKIE 배열의 키 값을 변수로 만든다

if(!$REMOTE_ADDR) $REMOTE_ADDR=$_SERVER[REMOTE_ADDR]; // $REMOTE_ADDR에 값이 없다면 $_SERVER[REMOTE_ADDR] 즉, 사용자IP 값을 넣는다

$ip=$REMOTE_ADDR; // $ip에 $REMOTE_ADDR 값을 넣는다
$agent=$HTTP_USER_AGENT; // $agent에 $HTTP_USER_AGENT 값을 넣는다


if($_COOKIE[REMOTE_ADDR]) // 만약 REMOTE_ADDR이라는 쿠키가 존재한다면
{
$ip=str_replace("12","",$ip);
$ip=str_replace("7.","",$ip);
$ip=str_replace("0.","",$ip);
} // $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") // 만약 필터링한 $ip가 "127.0.0.1"이라면 문제 해결! 
{
@solve();
}

else // "127.0.0.1"이 아니라면 Wrong IP!가 출력된다
{
echo("<p><hr><center>Wrong IP!</center><hr>");
}
?>



<!--

source : index.phps

-->

</body>
</html>


코드를 해석했을 때, 문제를 해결하려면 $ip가 127.0.0.1이 되어야 한다.
$ip는 $ip=$REMOTE_ADDR;을 통해서 만들 수 있다.
쿠키는 생성할 수 있으므로 REMOTE_ADDR을 name으로 가지는 쿠키의 값을 127.0.0.1을 만들면 된다.
그럼 extract 함수 뒤에 if(!REMOTE_ADDR) 문에 걸리지 않으므로 $REMOTE_ADDR의 값을 내 IP로 만들지 않을 수 있다.

좋은 방법인가 싶었는데 문제가 있다.
쿠키를 생성하면 if($_COOKIE[REMOTE_ADDR]) 필터링에 걸린다.
필터링을 우회하기 위해서 검색해봤더니 우회 방법이 있다. 그 방법을 익히고 필터링 후 127.0.0.1이 되는 값을 찾았다.
editThisCookie를 이용하여 쿠키를 생성했다.

문제를 해결했다.

다시 WEBHACKING.kr로 돌아가면 다음과 같이 차단된다. 그럼 생성한 쿠키를 삭제하면 된다. 끝!

'wargame > WEBHACKING.kr' 카테고리의 다른 글

[WEBHACKING.kr]15  (0) 2019.07.01
[PHP]str_replace 함수 우회하는 방법  (0) 2019.07.01
[WEBHACKING.kr]17  (0) 2019.07.01
[WEBHACKING.kr]16  (0) 2019.06.03
[WEBHACKING]모든 포스트 목록  (0) 2019.06.02