cthulhu
이번 문제는 “ModSecurity Core Rule Set v3.1.0” 웹 방화벽(WAF)을 우회하는 문제다.

WAF 룰셋은 아래 주소에서 다운로드하자.

SQLi 관련 룰셋 정보는 아래 경로의 설정파일에 정의되어 있다.
- “coreruleset-3.1.0\rules\REQUEST-942-APPLICATION-ATTACK-SQLI.conf”
스윽 살펴보면 SELECT, UNION, CASE, HAVING 등의 문자들이 특정 구조로 입력될 때 정규식으로 필터링 하고 있었다.

일단 테스트를 위해서 기본적인 우회 구문을 작성하여 전달해본다.
- (공격 페이로드) id=&pw=’ OR 1 을 입력하면 403 Forbidden 응답이 반환된다.

아래 URL을 참고하여 WAF 우회 페이로드를 작성했다.
- https://github.com/SpiderLabs/owasp-modsecurity-crs/issues/1181
보호 레벨 (PROTECTION LEVEL) 1의 경우에는 아래처럼 페이로드를 작성하면 우회가 된다고 한다.

위 자료를 참고해서 페이로드 작성한 후 전달하니 클리어 가능했다.
- (공격 페이로드) ?id=&pw=a’<@=1%20OR%20(SELECT%20’1’)%23

🐛.. 🐛.. 🐛..