2013-02-21 17:33:12 +04:00
#!/usr/bin/env python
"""
2019-01-05 23:38:52 +03:00
Copyright ( c ) 2006 - 2019 sqlmap developers ( http : / / sqlmap . org / )
2017-10-11 15:50:46 +03:00
See the file ' LICENSE ' for copying permission
2013-02-21 17:33:12 +04:00
"""
2013-02-26 18:30:11 +04:00
import re
2013-03-20 14:10:24 +04:00
from lib . core . enums import HTTP_HEADER
2013-02-21 17:33:12 +04:00
from lib . core . settings import WAF_ATTACK_VECTORS
__product__ = " ModSecurity: Open Source Web Application Firewall (Trustwave) "
def detect ( get_page ) :
retval = False
for vector in WAF_ATTACK_VECTORS :
page , headers , code = get_page ( get = vector )
2016-07-06 14:19:51 +03:00
retval = re . search ( r " Mod_Security|NOYB " , headers . get ( HTTP_HEADER . SERVER , " " ) , re . I ) is not None
2019-01-07 03:21:07 +03:00
retval | = any ( _ in ( page or " " ) for _ in ( " This error was generated by Mod_Security " , " One or more things in your request were suspicious " , " rules of the mod_security module " , " The page you are trying to access is restricted due to a security rule " , " Protected by Mod Security " ) )
2013-02-26 18:30:11 +04:00
if retval :
2013-02-21 17:33:12 +04:00
break
return retval