티스토리 뷰

hacking/webhacking.kr

<webhacking.kr> - 24번

khe0616 2018. 1. 26. 16:04

24번 문제를 클릭하면 내 컴퓨터의 ip, 사용환경과 함께 Wrong IP!라는 문장이 출력된다.

 

 

 

 

 

 

Ctrl+u를 누르면 아래 주석부분에 source : index.phps라는 힌트가 쓰여있다.

저 주소로 이동하면된다.

 

 

 

 

 

 

index.phps로 이동하면 이와 같이 php코드가 나온다.

 

extract()는 배열속의 키 값을 변수화 시켜주는 함수이다.

ex) 

 $server["server1"] = "sv1";

 $server["server2"] = "sv2";

 $server["server3"] = "sv3";

 

extract($server);

 

----------------------결과---------------------

$server1 라는 변수 생성   -> 값 : "sv1"

$server2 라는 변수 생성   -> 값 : "sv2"

$server3 라는 변수 생성   -> 값 : "sv3"

 

 

 

 

 

 

 

$_SERVER[REMOTE_ADDR]에는 사이트에 접속한 사용자의 IP 즉, 내 컴퓨터의 IP주소가 저장되어 있고, 위 사진을 보면 REMOTE_ADDR이라는 쿠키는 존재하지 않으므로 $ip라는 변수에는 내 ip가 저장된다.

 

참고로 $_SERVER[HTTP_USER_AGENT]에는 사이트에 접속한 사용자의 환경이 저장되어 있다.

 

 

 

 

 

내 ip는 127.0.0.1이 아니기 때문에 Wrong IP!라는 메시지가 출력되었던 것이다. 문제를 풀려면 $ip 변수에 "127.0.0.1"이라는 값이 저장되도록 해야한다.

 

 

 

 

소스코드에서 extract($_COOKIE)는 extract($_SERVER) 다음에 호출되기 때문에

$_COOKIE[REMOTE_ADDR]이라는 쿠키가 존재하고 그 값이 "127.0.0.1"이라면, 최종적으로 $ip라는 변수에는 "127.0.0.1"이라는 값이 저장될 것이다.

 

 

 

 

 

 

 

 

그 전에 REMOTE_ADDR이라는 쿠키가 존재할때 호출되는 분기문을 확인하여야 한다.

str_replace()는 변수에 저장된 값을 검사해 치환하는 함수이다.

단, 그 후에 저장된 값(치환된 결과값)에 대해서는 다시 검사를 하지 않고 종료한다.

 

 

 

 

 

 

 

 

 

따라서 112277..00..00..1을 "REMOTE_ADDR" 쿠키의 값으로 넣어주면된다.

 

 

 

 

 

 

 

새로고침하면 문제가 풀린다.

 

 

 

 

 

 

 

 

 

'hacking > webhacking.kr' 카테고리의 다른 글

<webhacking.kr> - 38번  (0) 2018.01.31
<webhacking.kr> - 26번  (0) 2018.01.26
<webhacking.kr> - 4번  (0) 2018.01.24
<webhacking.kr> - 6번  (0) 2018.01.23
<webhacking.kr> - 12번  (0) 2018.01.21
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함