반응형
문제소스:
1
2
3
4
5
6
7
8
9
10
11
12
|
<?php
include "./config.php";
login_chk();
$db = dbconnect();
if(preg_match('/prob|_|\.|\(\)|#|-/i', $_GET[pw])) exit("No Hack ~_~");
if(strlen($_GET[pw])>6) exit("No Hack ~_~");
$query = "select id from prob_nightmare where pw=('{$_GET[pw]}') and id!='admin'";
echo "<hr>query : <strong>{$query}</strong><hr><br>";
$result = @mysqli_fetch_array(mysqli_query($db,$query));
if($result['id']) solve("nightmare");
highlight_file(__FILE__);
?>
|
cs |
쿼리에서
and id!='admin' -> 그리고 id는 admin이 아니어야 한다.
로 인해서 pw 뒷부분을 주석처리하고 pw 부분을 True로 만들면 될 것 같지만,
if(preg_match('/prob|_|\.|\(\)|#|-/i', $_GET[pw])) exit("No Hack ~_~");
if(strlen($_GET[pw])>6) exit("No Hack ~_~");
#, -- 주석도 막아버리고 길이도 6까지로 제한되어 있다.
주석 처리부분은 ;%00로 할 수 있는 방법이 있다.
그런데 pw = ('')로 되어있다. pw = ('') = 0 으로 true로 만들어버린뒤 ;%00로 뒷부분을 주석처리하면 된다.
")=0;%00 그러면 딱 6자리 나온다.
반응형
'WAR GAME > Lord of SQLi' 카테고리의 다른 글
LORD OF SQL INJECTION [DRAGON] 풀이 (0) | 2019.11.13 |
---|---|
LORD OF SQL INJECTION [xavis] 풀이 (0) | 2019.11.12 |
LORD OF SQL INJECTION [ZOMBIE_ASSASSIN] 풀이 (1) | 2019.11.08 |
LORD OF SQL INJECTION [SUCCUBUS] 풀이 (0) | 2019.11.07 |
LORD OF SQL INJECTION [assassin] 풀이 (0) | 2019.11.06 |