webhacking.kr - old8

2021. 4. 4. 10:39WarGame/webhaking.kr

처음 접속하면 hi guest라는 문자를 출력합니다.

소스코드를 확인해보면

<?php
  include "../../config.php";
  if($_GET['view_source']) view_source();
?><html>
<head>
<title>Challenge 8</title>
<style type="text/css">
body { background:black; color:white; font-size:10pt; }
</style>
</head>
<body>
<br><br>
<center>
<?php
$agent=trim(getenv("HTTP_USER_AGENT"));
$ip=$_SERVER['REMOTE_ADDR'];
if(preg_match("/from/i",$agent)){
  echo("<br>Access Denied!<br><br>");
  echo(htmlspecialchars($agent));
  exit();
}
$db = dbconnect();
$count_ck = mysqli_fetch_array(mysqli_query($db,"select count(id) from chall8"));
if($count_ck[0] >= 70){ mysqli_query($db,"delete from chall8"); }

$result = mysqli_query($db,"select id from chall8 where agent='".addslashes($_SERVER['HTTP_USER_AGENT'])."'");
$ck = mysqli_fetch_array($result);

if($ck){
  echo "hi <b>".htmlentities($ck[0])."</b><p>";
  if($ck[0]=="admin"){
    mysqli_query($db,"delete from chall8");
    solve(8);
  }
}

if(!$ck){
  $q=mysqli_query($db,"insert into chall8(agent,ip,id) values('{$agent}','{$ip}','guest')") or die("query error");
  echo("<br><br>done!  ({$count_ck[0]}/70)");
}
?>
<a href=./?view_source=1>view-source</a>
</body>
</html>

 

위 코드를 확인해보면 user_agent 를 변조해서 sqli를 실행해야 할 것 같습니다 맨 아랫부분에 쿼리를 insert into 하는 부분을 확인해보면

 

> insert into chall8(agent,ip,id) values('{$agent}','{$ip}','guest')

 

로 되어있으니, user agent를 m0nd2y', '127', 'admin'), ('guest 

로 변조해주면 될 것 같습니다

 

burp suite 로 패킷을 잡고

 

 

 

 

위와 같이 변조해주면 db에 박혔을 테고, 그 후에 m0nd2y를 호출해주면

 

 

solve가 가능합니다.

 

'WarGame > webhaking.kr' 카테고리의 다른 글

webhacking.kr - old53  (0) 2021.04.07
webhacking.kr - old35  (0) 2021.04.06
webhacking.kr - old49  (0) 2021.04.03
webhacking.kr - old46  (0) 2021.04.03
webhacking.kr - old3  (0) 2021.04.02