-
<Lord of SQL Injection> cthulhuWargame/Lord of SQL Injection 2021. 12. 13. 16:26
서버에 WAF(웹 방화벽)가 동작한다. Paranoia Level은 기본값인 1로 설정되어있다.
이 WAF를 우회할 수 있냐고 묻는다.
GET 방식으로 전달받은 id와 pw에서 prob, _, ., (), admin을 필터링한다.
그 뒤 쿼리를 통한 결과를 배열로 가져오는데, id의 값이 참이면 문제가 풀린다고 한다.
기본적인 SQL Injection 구문인 ' or 1=1#을 id에 입력해보면
접근이 제한되었다.
이 외의 구문들을 통해 시도해본 결과, 웬만한 SQL Injection 구문은 다 필터링하는 것 같다.
https://github.com/SpiderLabs/owasp-modsecurity-crs/issues/1181에는 CRS v3.1.0을 우회하는 방법을 참고하였다.
이 방법은 MySQL에서만 동작한다고 한다.
PL1을 우회하는 쿼리가 나와있지만, 왜인지 모르겠지만 동작하지 않았다.
PL2를 우회하는 쿼리에서
-1'<@=1 OR {a 1}=1 OR '
이 쿼리를 사용하면 문제가 풀린다.
select id from prob_cthulhu where id='-1'<@=1 OR {a 1}=1 OR '' and pw=''
웹 방화벽에 대해서는 따로 공부해야 이해할 것 같다.
'Wargame > Lord of SQL Injection' 카테고리의 다른 글
<Lord of SQL Injection> alien (0) 2021.12.06 <Lord of SQL Injection> zombie (0) 2021.12.05 <Lord of SQL Injection> ouroboros (0) 2021.12.03 <Lord of SQL Injection> phantom (0) 2021.12.02 <Lord of SQL Injection> frankenstein (0) 2021.12.01