
WAFNinja é uma ferramenta que contém duas funções para atacar Firewalls de Aplicações Web.
WAFNinja - Favorito dos testadores de penetração para bypass de WAF
WAFNinja é uma ferramenta de linha de comando escrita em Python. Ela ajuda testadores de penetração a contornar um WAF automatizando as etapas necessárias para burlar a validação de entrada. A ferramenta foi criada com o objetivo de ser facilmente extensível, simples de usar e utilizável em um ambiente de equipe. Muitos payloads e strings de fuzzing, armazenados em um arquivo de banco de dados local, acompanham a ferramenta. WAFNinja suporta conexões HTTP, requisições GET e POST e o uso de Cookies para acessar páginas restritas a usuários autenticados. Além disso, um proxy de interceptação pode ser configurado.
Instalação:
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} ...
EXEMPLO:
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 posicionais: {fuzz, bypass, insert-fuzz, insert-bypass, set-db}
Qual função deseja usar?
fuzz verifica quais símbolos e palavras-chave são permitidos pelo WAF.
bypass envia payloads do banco de dados para o alvo.
insert-fuzz adiciona uma string de fuzzing
insert-bypass adiciona um payload à lista de bypass
set-db usa outro arquivo de banco de dados. Útil para compartilhar o mesmo banco de dados com outros.
argumentos opcionais:
-h, --help mostra esta mensagem de ajuda e sai
-v, --version mostra o número da versão do programa e sai
Agradeço qualquer feedback! Abraços, Khalil.