
Un modulo Python3 per assistere nel fuzzing di applicazioni web
Modulo compatibile con Python3
Basato su pywebfuzz, Py3webfuzz è un modulo Python3 che assiste nell'identificazione di vulnerabilità in applicazioni web e servizi web tramite brute force, fuzzing e analisi. Il modulo fornisce valori di test comuni, generatori e altre utility utili per il fuzzing di applicazioni web, endpoint API e lo sviluppo di exploit web.
py3webfuzz include il fuzzdb e altre fonti varie implementate in classi, metodi e funzioni Python per facilità d'uso. Il progetto fuzzdb è semplicemente una raccolta di valori per test. L'obiettivo è fornire una buona selezione di valori dal progetto fuzzdb e da altre fonti, ripuliti e disponibili tramite classi, metodi e namespace Python3. Questo rende più facile e comodo utilizzare questi valori nei propri exploit e PoC.
È stato fatto uno sforzo per abbinare i nomi in modo simile alle cartelle e ai valori del progetto fuzzdb più recente. Questo sforzo può talvolta portare a namespace dall'aspetto poco elegante. Questo equilibrio è stato raggiunto in modo che la familiarità con il progetto fuzzdb si trasferisse nel codice Python. Le eccezioni riguardano la sostituzione dei trattini con i trattini bassi.
L'installazione può essere fatta in diversi modi. Se vuoi usare un ambiente virtuale
http://pypi.python.org/pypi/setuptools
$ git clone https://github.com/jangelesg/py3webfuzz.git
$ cd py3webfuzz/
Puoi eseguire lo setup.py fornito con il comando install
$ python setup.py install
Puoi anche usare easy_install se è così che gestisci i tuoi pacchetti installati
$ easy_install py3webfuzz_VERSION.tar.gz
Puoi anche puntare alla posizione in cui si trova il tar.gz sul web
$ easy_install URL_package
Dovresti essere a posto.
# 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)
