
Un módulo de Python3 para ayudar en el fuzzing de aplicaciones web.
Python3 Module Compatible
Basado en pywebfuzz, Py3webfuzz es un módulo de Python3 que ayuda a identificar vulnerabilidades en aplicaciones web, Servicios web mediante fuerza bruta, fuzzing y análisis. El módulo lo hace proporcionando valores comunes de prueba, generadores y otras utilidades que serían útiles al fuzzear aplicaciones web, puntos finales de API y desarrollar exploits web.
py3webfuzz tiene fuzzdb y algunas otras fuentes misceláneas implementadas en clases, métodos y funciones de Python para facilidad de uso. El proyecto fuzzdb es solo una colección de valores para pruebas. El objetivo es proporcionar una selección bastante buena de valores del proyecto fuzzdb y algunas otras fuentes, limpiados y disponibles a través de clases, métodos y espacios de nombres de Python3. Esto lo hace más fácil y práctico cuando llega el momento de usar estos valores en tus propios exploits y PoC.
Se hizo un esfuerzo para que los nombres coincidieran de manera similar con las carpetas y valores del último proyecto fuzzdb. Este esfuerzo a veces puede dar lugar a espacios de nombres algo feos. Se logró este equilibrio para que la familiaridad con el proyecto fuzzdb se trasladara al código Python. Las excepciones llegan con el reemplazo de guiones por guiones bajos.
La instalación se puede hacer de un par de formas. Si deseas usar un entorno virtual
http://pypi.python.org/pypi/setuptools
$ git clone https://github.com/jangelesg/py3webfuzz.git
$ cd py3webfuzz/
Puedes ejecutar el setup.py proporcionado con el comando install
$ python setup.py install
También puedes usar easy_install si es así como gestionas tus paquetes instalados
$ easy_install py3webfuzz_VERSION.tar.gz
También puedes apuntar a la ubicación donde se encuentra el tar.gz en la web
$ easy_install URL_package
Deberías estar listo.
# 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)
