728x90
<?php
include "../../config.php";
if($_GET['view_source']) view_source();
?><html>
<head>
<title>Challenge 49</title>
</head>
<body>
<h1>SQL INJECTION</h1>
<form method=get>
level : <input name=lv value=1><input type=submit>
</form>
<?php
if($_GET['lv']){
$db = dbconnect();
if(preg_match("/select|or|and|\(|\)|limit|,|\/|order|cash| |\t|\'|\"/i",$_GET['lv'])) exit("no hack");
$result = mysqli_fetch_array(mysqli_query($db,"select id from chall49 where lv={$_GET['lv']}"));
echo $result[0] ;
if($result[0]=="admin") solve(49);
}
?>
<hr><a href=./?view_source=1>view-source</a>
</body>
</html>
admin이 나오게 하면 된다.
select가 필터링 되는걸 보니 union접근은 힘들고
order도 필터링 되어 order by사용도 불가하다.
의외로 답은 간단하다. 답부터 보자면
?lv=5||id=0x61646d696e
admin은 문자열이니 원래라면 싱글쿼터를 사용했겠지만 쿼터도 필터링 되어 있으니 16진수로 바꾸어 적용해주었다.
728x90
반응형
'Web Hacking > Webhacking.kr' 카테고리의 다른 글
Webhacking.kr 60번 풀이 (0) | 2024.01.05 |
---|---|
Webhacking.kr old-7 풀이 (0) | 2024.01.05 |
Webhacking.kr old-11 풀이 (0) | 2023.12.31 |
Webhacking.kr old-21 풀이 (0) | 2023.12.27 |
Webhacking.kr old-12 풀이 (0) | 2023.12.27 |