diff --git a/lib/core/settings.py b/lib/core/settings.py index 8adcbf7f2..461ed731c 100644 --- a/lib/core/settings.py +++ b/lib/core/settings.py @@ -19,7 +19,7 @@ from lib.core.enums import OS from lib.core.revision import getRevisionNumber # sqlmap version (...) -VERSION = "1.0.6.53" +VERSION = "1.0.6.54" REVISION = getRevisionNumber() STABLE = VERSION.count('.') <= 2 VERSION_STRING = "sqlmap/%s#%s" % (VERSION, "stable" if STABLE else "dev") diff --git a/waf/cloudfront.py b/waf/cloudfront.py new file mode 100644 index 000000000..e5eae8b2e --- /dev/null +++ b/waf/cloudfront.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python + +""" +Copyright (c) 2006-2016 sqlmap developers (http://sqlmap.org/) +See the file 'doc/COPYING' for copying permission +""" + +import re + +from lib.core.enums import HTTP_HEADER +from lib.core.settings import WAF_ATTACK_VECTORS + +__product__ = "CloudFront (Amazon)" + +def detect(get_page): + retval = False + + for vector in WAF_ATTACK_VECTORS: + _, headers, _ = get_page(get=vector) + + retval |= re.search(r"cloudfront", headers.get("X-Cache", ""), re.I) is not None + retval |= headers.get("X-Amz-Cf-Id") is not None + retval |= re.search(r"AmazonS3", headers.get(HTTP_HEADER.SERVER, ""), re.I) is not None + + if retval: + break + + return retval