[Lord of SQL Injection] cobolt 풀이
2016. 11. 7. 22:43
Lord of SQL Injection(LoS) - Cobolt
Comment based SQL Injection.
SQL Injection 취약점이 해당 웹 어플리케이션에 존재할 때, 쿼리를 가장 쉽게 정복할 수 있는 방법 중 하나는 바로 주석을 이용하는 것입니다.
MySQL에서 많은 종류의 주석이 쓰이는데, 공격에 많이 쓰이는 주석을 소개하겠습니다.
1. --
2. # (%23) => 참고로 #은 MySQL에서만 주석으로 사용됩니다.
3. /*
4. //
5. (주석은 아니지만 쿼리를 바로 끝낼 수 있는 것) ;%00
이 정도가 있겠네요.
저는 " -- - "를 주로 씁니다. 제가 LoS를 풀 당시에는 # 을 많이 썼지만 MSSQL, ORACLE DB, SQLite3 등에는 #이 주석으로 사용되지 않기 때문에 -- -을 사용합니다.
-- 뒤에 "%20-"를 붙이는 이유는 -- 만 사용할 경우 주석으로 인식되지 않는 경우가 있기 때문입니다.
Solution
Gremlin 단계에서 했던 것에서 주석을 추가하여 exploit하면 됩니다.
그리고 id가 admin이라면 cobolt 단계를 푸는 것이므로 id에 admin 값이 들어가야 합니다.
주석말고도 풀 수 있는 방법은 많습니다. pw의 값에 무차별 대입 공격으로 푸셔도 됩니다. 하지만, 시간도 그렇고 네트워크 자원이 많이 소비되겠죵~~
하지만, 이런 쿼리를 만든다면 뒤의 조건은 아예 무시하고 앞에 id가 admin이냐만 보게 되는 것이죠.
혹은
http://los.eagle-jump.org/cobolt_ee003e254d2fe4fa6cc9505f89e44620.php?id=admin'-- This is commnet!
'write-ups > Lord of SQL Injection' 카테고리의 다른 글
[Lord of SQL Injection] Darkelf 풀이 (0) | 2016.11.08 |
---|---|
[Lord of SQL Injection] Wolfman 풀이 (0) | 2016.11.08 |
[Lord of SQL Injection] Orc 풀이 (0) | 2016.11.08 |
[Lord of SQL Injection] Goblin 풀이 (0) | 2016.11.07 |
[Lord of SQL Injection] Gremlin 풀이 (0) | 2016.11.07 |