[Lord of SQL Injection] Troll 풀이
2016. 11. 8. 01:59
Lord of SQL Injection (LoS) - Troll
Analyze
admin 을 필터링한다. 어쩌지 id에는 admin이라는 값이 들어가야 할텐데...ㅜ
Solution
ereg는 대문자와 소문자를 서로 다른 문자 취급한다.
ex. 'a' != 'A'
이미 취약점도 발견돼서 preg_match()를 대신 사용하여야 한다. php.net의 설명에도 나왔있듯, php 7.0.0 버전부터는 완전히 삭제되었다.
어째뜬 한 글자만 대문자로 바뀌어도 다른 문자열 취급하는데, DB에서는 대소문자 구별이 딱히 없으므로
id 에서 admin 값이 나올 수 있는 것이다.
+) 내가 작년에 저 문제를 풀었을 때는 몰랐는데, SQL Injection하는 데이터베이스의 charset에 따라서 대소문자 구분의 여부가 달라진다.
'write-ups > Lord of SQL Injection' 카테고리의 다른 글
[Lord of SQL Injection] Skeleton 풀이 (0) | 2016.11.08 |
---|---|
[Lord of SQL Injection] Vampire 풀이 (0) | 2016.11.08 |
[Lord of SQL Injection] Orge 풀이 (0) | 2016.11.08 |
[Lord of SQL Injection] Darkelf 풀이 (0) | 2016.11.08 |
[Lord of SQL Injection] Wolfman 풀이 (0) | 2016.11.08 |