
WAFNinja es una herramienta que contiene dos funciones para atacar firewalls de aplicaciones web.
WAFNinja - Favorito de los testers de penetración para evadir WAF
WAFNinja es una herramienta CLI escrita en Python. Está diseñada para ayudar a los testers de penetración a evadir un WAF mediante la automatización de los pasos necesarios para eludir la validación de entrada. La herramienta fue creada con el objetivo de ser fácilmente extensible, sencilla de usar y utilizable en un entorno de equipo. Muchos payloads y cadenas de fuzzing, almacenados en un archivo de base de datos local, vienen incluidos con la herramienta. WAFNinja admite conexiones HTTP, solicitudes GET y POST, y el uso de cookies para acceder a páginas restringidas a usuarios autenticados. Además, se puede configurar un proxy interceptador.
Instalación:
git clone https://github.com/khalilbijjou/WAFNinja && cd WAFNinja
pip install -r requirements.txt
Uso:
wafninja.py [-h] [-v] {fuzz, bypass, insert-fuzz, insert-bypass, set-db} ...
EJEMPLO:
fuzz:
python wafninja.py fuzz -u "http://www.target.com/index.php?id=FUZZ"
-c "phpsessid=value" -t xss -o output.html
bypass:
python wafninja.py bypass -u "http://www.target.com/index.php" -p "Name=PAYLOAD&Submit=Submit"
-c "phpsessid=value" -t xss -o output.html
insert-fuzz:
python wafninja.py insert-fuzz -i select -e select -t sql
argumentos posicionales: {fuzz, bypass, insert-fuzz, insert-bypass, set-db}
¿Qué función quieres usar?
fuzz comprueba qué símbolos y palabras clave están permitidos por el WAF.
bypass envía payloads de la base de datos al objetivo.
insert-fuzz añade una cadena de fuzzing
insert-bypass añade un payload a la lista de bypass
set-db usa otro archivo de base de datos. Útil para compartir la misma base de datos con otros.
argumentos opcionales:
-h, --help muestra este mensaje de ayuda y sale
-v, --version muestra el número de versión del programa y sale
¡Agradecería cualquier comentario! Saludos, Khalil.