상당히 간단한 문제이니 바로 문제를 보러 갑시다.
문제 살펴보기

문제 풀이에 필요한 부분을 확인해보자.
if(preg_match("/admin/", $_GET[id])) exit("HeHe");
$query = "select id from prob_troll where id='{$_GET[id]}'";
...
$result = @mysqli_fetch_array(mysqli_query($db,$query));
if($result['id'] == 'admin') solve("troll");
풀이 조건이 매우 간단하다.
id 파라미터로 전달한 값에 admin을 포함시키지 않고
select문이 id='admin'인 행을 반환하게 하면 된다.
문제 풀이 과정
sql에서 select문은 대소문자를 구별하지 않는다.
따라서 admin 대신 Admin, ADMIN 등 대문자를 포함시켜서 id 파라미터를 통해 값을 전달하면
바로 문제가 풀릴 것이다.

페이로드 : ?id=Admin
select문이 대소문자를 구분하지 않는다는 것만 알면 매우 쉽게 풀 수 있는 문제였다.
다음 문제로 넘어갑시다.
'web > Lord of SQLInjection' 카테고리의 다른 글
| Lord of SQLInjection - 10번 : skeleton (0) | 2023.12.10 |
|---|---|
| Lord of SQLInjection - 9번 : vampire (0) | 2023.12.10 |
| Lord of SQLInjection - 7번 : orge (1) | 2023.12.10 |
| Lord of SQLInjection - 6번 : darkelf (1) | 2023.12.10 |
| Lord of SQLInjection - 5번 : wolfman (0) | 2023.12.10 |