
Un module Python3 pour aider au fuzzing d'applications web.
Python3 Module Compatible
Basé sur pywebfuzz, Py3webfuzz est un module Python3 qui aide à l'identification de vulnérabilités dans les applications web et les services web par le biais de force brute, de fuzzing et d'analyse. Le module y parvient en fournissant des valeurs de test courantes, des générateurs et d'autres utilitaires utiles lors du fuzzing d'applications web, de points de terminaison d'API et du développement d'exploits web.
py3webfuzz intègre fuzzdb et d'autres sources diverses implémentées dans des classes, méthodes et fonctions Python pour une utilisation facile. Le projet fuzzdb est simplement une collection de valeurs de test. L'objectif est de fournir une assez bonne sélection de valeurs provenant du projet fuzzdb et de quelques autres sources, nettoyées et disponibles via des classes, méthodes et espaces de noms Python3. Cela rend plus facile et pratique l'utilisation de ces valeurs dans vos propres exploits et PoC.
Un effort a été fait pour faire correspondre les noms de la même manière que les dossiers et les valeurs du dernier projet fuzzdb. Cela peut parfois donner des espaces de noms peu élégants. Cet équilibre a été trouvé pour que la familiarité avec le projet fuzzdb se transpose dans le code Python. Les exceptions viennent du remplacement des traits d'union par des underscores.
L'installation peut se faire de plusieurs façons. Si vous souhaitez utiliser un environnement virtuel
http://pypi.python.org/pypi/setuptools
$ git clone https://github.com/jangelesg/py3webfuzz.git
$ cd py3webfuzz/
Vous pouvez exécuter le setup.py fourni avec la commande install
$ python setup.py install
Vous pouvez également utiliser easy_install si c'est ainsi que vous gérez vos paquets installés
$ easy_install py3webfuzz_VERSION.tar.gz
Vous pouvez également pointer vers l'emplacement où se trouve le tar.gz sur le web
$ easy_install URL_package
Vous devriez être prêt.
# 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)
