[Webhacking.kr] 24번
|
문제 내용은 저렇다. (ip는 혹시 몰라서 모자이크 처리함)
소스보기를 해서 보니 주석으로 <!-- source : index.phps --> 와 같은 내용이 있었다. index.phps를 보자.
내용은 아래와 같다
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | <html> <head> <title>Challenge 24</title> </head> <body> <? 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>"); } ?> <!-- source : index.phps --> </body> </html> | cs |
일단 코드를 분석하자.
extract() 함수는 배열 속의 키값을 변수화 시켜주는 함수이다. (http://php.net/manual/kr/function.extract.php)
extract(array) : array의 key값의 이름으로 변수를 만듬. 변수의 값은 key값에 대응하는 값. ex) extract($_COOKIE) => $REMOTE_ADDR = $_COOKIE['REMOTE_ADDR']
$_SERVER[REMOTE_ADDR] : 현재 페이지를 보고있는 시스템의 ip 주소
$_SERVER[HTTP_USER_AGENT] : 클라이언트의 접속 환경 정보(브라우저 정보 등)
그러므로 extract으로 변수들을 생성하고 $ip=$REMOTE_ADDR; 의 ip를 str_replace 함수를 거쳐서 ip값을 필터링시킨다.
필터링되는 값은 "12", "7." , "0." 으로 모두 "127.0.0.1"이라는 ip를 만드는데 방해하기 위해 사용된다.
일단 쿠키값 변조를 통해 REMOTE_ADDR 값으로 ip주소를 넣고 또 이값이 필터를 거쳐서 "127.0.0.1"이 되게 만들면 될것같다.
112277..00..00..1 이렇게 넣으면 필터를 거쳐서 127.0.0.1이 될 것같다.
EditThisCookie 툴을 이용해서 REMOTE_ADDR 이름의 쿠키를 만들고 값을 112277..00..00..1로 설정했다.
You have cleared the 24 problems.
Score + 100
문제가 풀렸다.
참고로 javascript를 이용해서도 쿠키변조가 가능하다.
javascript:alert(document.cookie="REMOTE_ADDR=112277..00..00..1");
아니면 크롬 개발자 도구에서 Console 창에서 javascript:document.cookie="REMOTE_ADDR=112277..00..00..1";를 입력하는 방법도 있다.
근데... 다른 쿠키값들이 다 변조되서 티스토리 로그아웃되는 등 곤란한점이 있다 ㅠ;
'Wargame > 웹해킹(Webhacking.kr)' 카테고리의 다른 글
[Webhacking.kr] 26번 (0) | 2017.09.06 |
---|---|
[Webhacking.kr] 25번 (0) | 2017.09.06 |
[Webhacking.kr] 19번 (0) | 2017.09.06 |
[Webhacking.kr] 18번 SQL INJECTION (0) | 2017.09.04 |
[Webhacking.kr] 17번 (0) | 2017.09.04 |