▶ 코드 확인
작은 따옴표를 쓰게 되면 상단의 필터링에 걸리게 된다. 따라서 작은 따옴표 없이 풀어야함을 생각해볼 수 있다.
strtolower을 사용하여, 전부 소문자로 교체해주기에, Lv. troll 과 같은 방법으로는 우회할 수 없다.
하단의 필터링을 자세히보면, admin이라는 단어가 있으면 없애버리고 출력함을 알 수가 있다. exit(); , die(); 는 없으니, admin이라는 단어만 빼고 코드실행은 계속됨은 쉽게 알 수 있다. SQL Injection WAF bypass 글에서 (3)에서 정리했다시피, 특정 단어를 빼는 경우는 해당 단어를 중간에 삽입하는 식으로 우회할 수 있다.
▶ 풀이
select id from prob_vampire where id='aadmindmin' select id from prob_vampire where id='adadminmin' select id from prob_vampire where id='admadminin' select id from prob_vampire where id='admiadminn' select id from prob_vampire where id='admiadminn' |
위 예시와 같이 문자열이 들어가게 되면 'admin'을 공란으로 필터링해서 남는 단어가 'admin'이 되어버리기에 클리어함을 확인할 수 있다.
'write-ups > Lord of SQL Injection' 카테고리의 다른 글
LORD OF SQLINJECTION - golem (0) | 2022.12.05 |
---|---|
LORD OF SQLINJECTION - Skeleton (0) | 2022.11.30 |
LORD OF SQLINJECTION - troll (0) | 2022.11.28 |
LORD OF SQLINJECTION - ORGE (0) | 2022.11.26 |
LORD OF SQLINJECTION - darkelf (0) | 2022.11.20 |
댓글