
Ein Python3-Modul zur Unterstützung beim Fuzzing von Webanwendungen
Python3 Modul kompatibel
Basierend auf pywebfuzz ist Py3webfuzz ein Python3-Modul, das bei der Identifizierung von Schwachstellen in Webanwendungen und Webdiensten durch Brute-Force, Fuzzing und Analyse hilft. Das Modul stellt gängige Testwerte, Generatoren und andere Hilfsprogramme bereit, die beim Fuzzing von Webanwendungen, API-Endpunkten und der Entwicklung von Web-Exploits nützlich sind.
py3webfuzz enthält das fuzzdb und einige andere gemischte Quellen, implementiert in Python-Klassen, Methoden und Funktionen zur einfachen Nutzung. Das fuzzdb-Projekt ist lediglich eine Sammlung von Testwerten. Ziel ist es, eine recht gute Auswahl an Werten aus dem fuzzdb-Projekt und anderen Quellen bereitzustellen, bereinigt und über Python3-Klassen, Methoden und Namensräume verfügbar. Dies erleichtert die Verwendung dieser Werte in eigenen Exploits und PoCs.
Es wurde darauf geachtet, die Namen ähnlich wie die Ordner und Werte des neuesten fuzzdb-Projekts zu gestalten. Diese Bemühungen können manchmal zu unschön aussehenden Namensräumen führen. Dieser Kompromiss wurde eingegangen, damit die Vertrautheit mit dem fuzzdb-Projekt in den Python-Code übergeht. Ausnahmen bilden die Ersetzung von Bindestrichen durch Unterstriche.
Die Installation kann auf verschiedene Weise erfolgen. Falls Sie eine virtuelle Umgebung verwenden möchten,
http://pypi.python.org/pypi/setuptools
$ git clone https://github.com/jangelesg/py3webfuzz.git
$ cd py3webfuzz/
Sie können die mitgelieferte setup.py mit dem install-Befehl ausführen
$ python setup.py install
Sie können auch easy_install verwenden, wenn Sie Ihre installierten Pakete so verwalten
$ easy_install py3webfuzz_VERSION.tar.gz
Sie können auch auf den Speicherort verweisen, an dem die tar.gz-Datei im Web liegt
$ easy_install URL_package
Dann sollte es funktionieren.
# Accessing SQLi values and encode them for further use
# Import Library
from py3webfuzz import fuzzdb
from py3webfuzz import utils, encoderFuncs
# Instantiate a Class Object that give you access to a set of SQLi values
sqli_detect_payload = fuzzdb.Attack.AttackPayloads.SQLi.Detect()
# Getting Access to those values through a list
for index, payload in enumerate(sqli_detect_payload.Generic_SQLI):
print(f"Payload: {index} Value: {payload}")
# Using encoderFuncs you can get different handy encodings to develop exploits
print(f"SQLi Char Encode: {encoderFuncs.sqlchar_encode(payload)}")
# Send HTTP request to your target
# Import Library
from py3webfuzz import utils
# Custome your target and Headers
location = "http://127.0.0.1:8080/WebGoat/start.mvc#lesson/WebGoatIntroduction.lesson"
headers = {"Host": "ssl.scroogle.org", "User-Agent": \
"Mozilla/4.0 (compatible; MSIE 4.01; AOL 4.0; Mac_68K)",
"Content-Type": "application/x-www-form-urlencoded"}
# at this point you have a dic object with all the elements for your pentest
# "headers": response.headers, "content": response.content, "status_code": response.status_code,
# 'json': response.json, "text": response.text, "time": f"Total in seconds: {time}"
res = utils.make_request(location, headers=headers, method="get")
# print the response
print(res)

ZUKUNFT