Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 89dfe4e

Browse files
committed
Adding wallarm WAF script (and couple of other WAF script updates)
1 parent b41b07d commit 89dfe4e

6 files changed

Lines changed: 33 additions & 5 deletions

File tree

lib/core/settings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
from lib.core.revision import getRevisionNumber
2020

2121
# sqlmap version (<major>.<minor>.<month>.<monthly commit>)
22-
VERSION = "1.0.5.82"
22+
VERSION = "1.0.5.85"
2323
REVISION = getRevisionNumber()
2424
STABLE = VERSION.count('.') <= 2
2525
VERSION_STRING = "sqlmap/%s#%s" % (VERSION, "stable" if STABLE else "dev")

waf/anquanbao.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,9 @@ def detect(get_page):
1515
retval = False
1616

1717
for vector in WAF_ATTACK_VECTORS:
18-
_, headers, _ = get_page(get=vector)
18+
page, headers, code = get_page(get=vector)
1919
retval = re.search(r"MISS", headers.get("X-Powered-By-Anquanbao", ""), re.I) is not None
20+
retval |= code == 405 and "/aqb_cc/error/" in (page or "")
2021
if retval:
2122
break
2223

waf/cloudflare.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,11 @@ def detect(get_page):
1616
retval = False
1717

1818
for vector in WAF_ATTACK_VECTORS:
19-
_, headers, _ = get_page(get=vector)
19+
page, headers, code = get_page(get=vector)
2020
retval = re.search(r"cloudflare-nginx", headers.get(HTTP_HEADER.SERVER, ""), re.I) is not None
2121
retval |= re.search(r"\A__cfduid=", headers.get(HTTP_HEADER.SET_COOKIE, ""), re.I) is not None
2222
retval |= headers.get("cf-ray") is not None
23+
retval |= code == 403 and re.search(r"CloudFlare Ray ID:|var CloudFlare=", page or "") is not None
2324
if retval:
2425
break
2526

waf/modsecurity.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ def detect(get_page):
1919
page, headers, code = get_page(get=vector)
2020
retval = code == 501 and re.search(r"Reference #[0-9A-Fa-f.]+", page, re.I) is None
2121
retval |= re.search(r"Mod_Security|NOYB", headers.get(HTTP_HEADER.SERVER, ""), re.I) is not None
22-
retval |= "This error was generated by Mod_Security" in page
22+
retval |= code == 406 and "This error was generated by Mod_Security" in page
2323
if retval:
2424
break
2525

waf/varnish.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,11 @@ def detect(get_page):
1616
retval = False
1717

1818
for vector in WAF_ATTACK_VECTORS:
19-
_, headers, _ = get_page(get=vector)
19+
page, headers, code = get_page(get=vector)
2020
retval = headers.get("X-Varnish") is not None
2121
retval |= re.search(r"varnish\Z", headers.get(HTTP_HEADER.VIA, ""), re.I) is not None
22+
retval |= re.search(r"varnish", headers.get(HTTP_HEADER.SERVER, ""), re.I) is not None
23+
retval |= code == 404 and re.search(r"\bXID: \d+", page or "") is not None
2224
if retval:
2325
break
2426

waf/wallarm.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#!/usr/bin/env python
2+
3+
"""
4+
Copyright (c) 2006-2016 sqlmap developers (http://sqlmap.org/)
5+
See the file 'doc/COPYING' for copying permission
6+
"""
7+
8+
import re
9+
10+
from lib.core.enums import HTTP_HEADER
11+
from lib.core.settings import WAF_ATTACK_VECTORS
12+
13+
__product__ = "Wallarm Web Application Firewall (Wallarm)"
14+
15+
def detect(get_page):
16+
retval = False
17+
18+
for vector in WAF_ATTACK_VECTORS:
19+
_, headers, _ = get_page(get=vector)
20+
retval = re.search(r"nginx-wallarm", headers.get(HTTP_HEADER.SERVER, ""), re.I) is not None
21+
if retval:
22+
break
23+
24+
return retval

0 commit comments

Comments
 (0)