
Um módulo Python3 para auxiliar no fuzzing de aplicações web.
Python3 Module Compatible
Baseado no pywebfuzz, o Py3webfuzz é um módulo Python3 para auxiliar na identificação de vulnerabilidades em aplicações web e serviços web através de força bruta, fuzzing e análise. O módulo faz isso fornecendo valores de teste comuns, geradores e outros utilitários que seriam úteis ao fazer fuzzing em aplicações web, endpoints de API e desenvolver exploits web.
py3webfuzz possui o fuzzdb e algumas outras fontes diversas implementadas em classes, métodos e funções Python para facilidade de uso. O projeto fuzzdb é apenas uma coleção de valores para teste. O objetivo é fornecer uma seleção bastante boa de valores do projeto fuzzdb e de algumas outras fontes, limpos e disponíveis através de classes, métodos e namespaces Python3. Isso torna mais fácil e prático quando chega a hora de usar esses valores em seus próprios exploits e PoCs.
Foi feito um esforço para corresponder aos nomes de forma semelhante às pastas e valores do projeto fuzzdb mais recente. Esse esforço pode, às vezes, resultar em namespaces de aparência estranha. Esse equilíbrio foi alcançado para que a familiaridade com o projeto fuzzdb se transferisse para o código Python. As exceções vêm com a substituição de hífens por underscores.
A instalação pode ser feita de algumas maneiras. Se você quiser usar ambiente virtual
http://pypi.python.org/pypi/setuptools
$ git clone https://github.com/jangelesg/py3webfuzz.git
$ cd py3webfuzz/
Você pode executar o setup.py fornecido com o comando install
$ python setup.py install
Você também pode usar easy_install se é assim que você gerencia seus pacotes instalados
$ easy_install py3webfuzz_VERSION.tar.gz
Você também pode apontar para o local onde o tar.gz está na web
$ easy_install URL_package
Você deve estar pronto para prosseguir.
# 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)

FUTURO