Wargame/webhacking.kr

Challenge old 24 (100)

마띠(쥔장) 2019. 9. 29. 15:51

첫 화면은 client ip부분이 이상하게 되어 있다.. Wrong IP!

소스를 보면


<?php
  include "../../config.php";
  if($_GET['view_source']) view_source();
?><html>
<head>
<title>Challenge 24</title>
</head>
<body>
<p>
<?php
  extract($_SERVER); #extract() 함수는 배열의 값을 변수로 꺼내주는 역할을 한다.
  extract($_COOKIE);
  $ip = $REMOTE_ADDR; 
  $agent = $HTTP_USER_AGENT;
  if($REMOTE_ADDR){
    $ip = htmlspecialchars($REMOTE_ADDR);

#이 부분에서 ..은 .으로, 12, 7., 0.은 공백으로 치환한다.
    $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"){ #테이블의 ip부분이 127.0.0.1이면 성공~
    solve(24);
    exit();
  }
  else{
    echo "<hr><center>Wrong IP!</center>";
  }
?><hr>
<a href=?view_source=1>view-source</a>
</body>
</html>


먼저 EditThisCookie 툴을 사용하여, REMOTE_ADDR이라는 이름의 쿠키를 생성해주고

치환 조건이

".." -> "."

"12" -> ""

"7." -> ""

"0." -> ""

이므로 이를 우회하여 ip를 127.0.0.1로 변조시키기위해

112277...0...0...1

로 값을 넣어준다.


끝!

728x90

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

Challenge old 54 (100)  (0) 2019.10.13
Challenge old 39 (100)  (0) 2019.10.08
Challenge old 14 (100)  (0) 2019.10.01
[미완] Challenge old 38 (100)  (0) 2019.10.01
Challenge old 6 (100)  (0) 2019.09.24