[Lord of SQL Injection] Darknight 풀이
Lord of SQL Injection (LoS) - Darknight
Analyze
일단 싱글쿼터는 쓰지 못한다. substr() 함수와 ascii() 함수마저... 더군다나 = 도 쓰지 못한다...ㅜㅜ
Solution
blind SQL Injection을 진행할 때 보통 ascii(substr(pw,1,1)) like 97 이런 식으로 비교했으나 함수를 조금만 바꿔서
ord(mid(pw,1,1)) like 97 이런 식으로 바꾸면 필터링에 걸리지 않는다.
만약에 like까지 필터링으로 걸렸있었다면, in 으로 비교할 수 있다. 그리고 in 마저 필터링되어있다면, < > <> 등으로 대체하여 비교할 수 있다.
ord() 함수와 ascii() 함수는 거의 같은 함수라고 말할 수 있다. 하지만, 이것도 다른 기능이 있긴 있다ㅋㅋ
mysql> select ascii('가');
+--------------+
| ascii('가') |
+--------------+
| 234 |
+--------------+
1 row in set (0.01 sec)
mysql> select ord('가');
+------------+
| ord('가') |
+------------+
| 15380608 |
+------------+
1 row in set (0.00 sec)
mysql> select hex('가');
+------------+
| hex('가') |
+------------+
| EAB080 |
+------------+
1 row in set (0.01 sec)
ascii() 함수는 함수명에서도 알 수 있듯이, ascii만 지원하는 반면에 ord() 함수는 유니코드까지 지원된다. 그래서 나는 ord() 함수를 많이 쓰는 편이다.
'write-ups > Lord of SQL Injection' 카테고리의 다른 글
[Lord of SQL Injection] Giant 풀이 (0) | 2016.11.08 |
---|---|
[Lord of SQL Injection] Bugbear 풀이 (0) | 2016.11.08 |
[Lord of SQL Injection] Golem 풀이 (0) | 2016.11.08 |
[Lord of SQL Injection] Skeleton 풀이 (0) | 2016.11.08 |
[Lord of SQL Injection] Vampire 풀이 (0) | 2016.11.08 |