
Blindes WAF-Identifikationstool

identYwaf ist ein Identifikationswerkzeug, das den Typ des Web-Schutzes (d.h. WAF) basierend auf blinder Inferenz erkennen kann. Die blinde Inferenz erfolgt durch die Inspektion von Antworten, die durch eine Reihe vordefinierter offensiver (nicht destruktiver) Payloads hervorgerufen werden, die nur dazu verwendet werden, das dazwischenliegende Web-Schutzsystem auszulösen (z.B. http://<host>?aeD0oowi=1 AND 2>1). Derzeit unterstützt es mehr als 80 verschiedene Schutzprodukte (z.B. aeSecure, Airlock, CleanTalk, CrawlProtect, Imunify360, MalCare, ModSecurity, Palo Alto, SiteGuard, UrlScan, Wallarm, WatchGuard, Wordfence usw.), während die Wissensbasis ständig wächst.
Für weitere Informationen können Sie die Folien zu einem Vortrag "Blind WAF identification" ansehen, der auf der Sh3llCON 2019 (Santander / Spanien) gehalten wurde.
Hinweis: Im Rahmen dieses Projekts werden Screenshots charakteristischer Antworten verschiedener Web-Schutzsysteme (manuell) für zukünftige Referenzen gesammelt.







Sie können das neueste Zipball herunterladen, indem Sie hier klicken.
Vorzugweise können Sie identYwaf herunterladen, indem Sie das Git-Repository klonen:
git clone --depth 1 https://github.com/stamparm/identYwaf.git
identYwaf funktioniert sofort mit jeder Python-Version von 2.6.x bis 3.x auf jeder Plattform.
$ python identYwaf.py
__ __
____ ___ ___ ____ ______ | T T __ __ ____ _____
l j| \ / _]| \ | T| | || T__T T / T| __|
| T | \ / [_ | _ Yl_j l_j| ~ || | | |Y o || l_
| | | D YY _]| | | | | |___ || | | || || _|
j l | || [_ | | | | | | ! \ / | | || ]
|____jl_____jl_____jl__j__j l__j l____/ \_/\_/ l__j__jl__j (1.0.XX)
Usage: python identYwaf.py [options] <host|url>
Options:
--version Show program's version number and exit
-h, --help Show this help message and exit
--delay=DELAY Delay (sec) between tests (default: 0)
--timeout=TIMEOUT Response timeout (sec) (default: 10)
--proxy=PROXY HTTP proxy address (e.g. "http://127.0.0.1:8080")
--proxy-file=PRO.. Load (rotating) HTTP(s) proxy list from a file
--random-agent Use random HTTP User-Agent header value
--code=CODE Expected HTTP code in rejected responses
--string=STRING Expected string in rejected responses
--post Use POST body for sending payloads