Hashtag-Fuzz é uma ferramenta de fuzzing projetada para testar e ignorar WAFs e CDNs. Ao alavancar recursos avançados, como agente de usuário aleatório e valor do cabeçalho, atrasos aleatórios, manipular a escuridão múltipla, seletivo de listas de palavras e rotação redonda de proxy de Robin para cada rolagem, oferece uma solução robusta para profissionais de segurança que visam identificar vulnerabilidades em aplicativos da Web. Essa ferramenta se destaca como o quase primeiro e melhor em sua classe para testes da WAF sobre taxa e limites.
Deixe o aplicativo acessar global no sistema operacional, se não quiser, coloque a mesma pasta com este script, então:
git clone https://github.com/Hashtag-AMIN/hashtag-fuzz.git
cd ./hashtag-fuzz
chmod +x ./hashtag-fuzz
./hashtag-fuzzToda a biblioteca usada é a biblioteca Python embutida, sem necessidade de pip;)
cp ./hashtag-fuzz /usr/local/sbin/A ferramenta suporta quatro modos WAF, cada um com configurações específicas:
| Modos waf | Descrição |
|---|---|
| entrada | Perfil WAF básico com mecanismos mínimos de proteção. Adequado para testes iniciais. |
| comum | Perfil WAF padrão com mecanismos de proteção comuns. Adequado para testes de uso geral. |
| pró | Perfil WAF avançado com mecanismos de proteção mais sofisticados. Adequado para testes contra WAFs de nível profissional. |
| melhor | Perfil WAF premium com o mais alto nível de proteção. Adequado para testes contra WAFs de nível corporativo. |
Hashtag-Fuzz suporta quatro modos WAF, cada um oferecendo recursos e configurações exclusivos:
| Modo | Threads de controle para fuzzing | Controle atraso aleatório | Agente de usuário aleatório e cabeçalhos | Tamanho do Cunck de WordlioSt dividido |
|---|---|---|---|---|
| entrada | Controle básico de threads, limitados 20 threads | Atraso mínimo, atrasos aleatórios entre 0,1-0,2s | Agente de usuário aleatório e randomização 3 cabeçalhos superiores para simular rede interna | Worlist dividido para 250 pedaços |
| comum | Gerenciamento de threads aprimorado, limitados 10 threads | Introduz atrasos aleatórios entre 0,2-0,5s | Agente de usuário aleatório, randomização 6 cabeçalhos principais com IP local/privado aleatório | Worlist dividido para 200 pedaços |
| pró | Controle avançado de threads, limitado 5 threads | atrasos aleatórios entre solicitações 0,5-1s | Cabeçalhos eficientes de agentes do usuário e randomização aleatórios com alcance local/privado | Worlist dividida para 100 pedaços |
| melhor | Controle máximo de roscas, limitados 1 threads | Atraso máximo, atrasos aleatórios entre 1-2s | Randomização mais útil dos cabeçalhos e agente de usuário aleatório | Worlist dividida para 50 pedaços |
└─# ./hashtag-fuzz -h
__ __ __ ___
/ / / __ /'___
___ __ ___ ___ ,_ __ __ / __/ __ __ ____ ____
_ ` /'__` /',__ _ ` / /'__` /'_ `_____ ,__/ / /_ ,`/_ ,`
/ L._/__,/` _/ L._/ L _____ _ _ /_/ //_/ /_
_ _ __/._/____/ _ _ __ __/._ ____ ____/ _ ____/ /_/__/_/___
/_//_//__//_//___/ /_//_//__//__//_//___L /_/ /___/ /____//____/
/____/
_/__/
The wrapper of ffuf
The nightmare of WAFs & CDNs
https://github.com/Hashtag-AMIN/hashtag-fuzz
usage: hashtag-fuzz [-h] [-u URL] [-U URLS] [-request REQUEST_RAW]
[-H HEADER] [-b COOKIE] [-d DATA] [-X METHOD] -w WORDLIST
[-waf {entry,common,pro,prime}]
[-cs chunk_SIZE] [-t THREAD] [-p RANDOM_DELAY]
[-x [PROXY]] [-xf PROXY_FILE] [-tor [TOR]]
[-o OUTPUT] [-of {txt,csv}]
[-a ADDITIONAL_CMD] [-v]
hashtag-fuzz wrapper for FFUF.
options:
-h --help show this help message and exit
-u --url URL Target URL
-U --urls URLS File include List of Target URLs
-request --request-raw REQUEST_RAW
File Path to raw request [-request-proto is default: https,
if need to change with -a command: -a="-request-proto http"]
-H --header HEADER Custom headers to add to requests
-b --cookie COOKIE Cookies to add to requests
-d --data DATA Data to send with the request for POST/PUT/PATCH methods
-X --method METHOD HTTP method to use (e.g., GET, POST, PUT)
-w --wordlist WORDLIST
Path to wordlist
-waf --waf-mode {ENTRY,COMMON,PRO,PRIME}
WAF or CDN behavior mode: entry, common, pro, or prime
-cs --chunk-size chunk_SIZE
Split each wordlist with Chunk size, (default=300)
-t --thread THREAD threads use in ffuf (default=[select in waf mode])
-p --random-delay RANDOM_DELAY
random delay range use in ffuf (default=[select in waf mode])
-x --proxy PROXY Proxy server|servers to use (c)
-xf --proxy-file PROXY_FILE
Proxy servers file to use
-tor --tor TOR use Tor proxy with unique(dynamic) IP address for each chunk of wordlist
(default=socks5://127.0.0.1:9050)
-o --output OUTPUT Output file name of FFUF result
-of --output-format {TXT,CSV}
Output of FFUF brief and useful mode: txt, csv
-a --additional-cmd ADDITIONAL_CMD
Additional FFUF commands
-v --verbose verbose mode default: False
./hashtag-fuzz -u http://site.tld/FUZZ -w ./wordlist.txt -waf entry
./hashtag-fuzz -u http://site.tld/FUZZ -w ./wordlist.txt -waf pro -cs 10./hashtag-fuzz -request ./raw-req.txt -w ./wordlist.txt -waf common./hashtag-fuzz -U ./urls.txt -w ./wordlist.txt -waf entry -cs 50 -H " X-header: header-val "
./hashtag-fuzz -U ./urls.txt -w ./wordlist.txt -waf pro -H ' Authorization: value_token ' echo ' http://site.tld ' | ./hashtag-fuzz -w ./wordlist.txt -waf common -cs 15 -d " var1=FUZZ&var2=val2 " -X " PUT "
cat ./urls.txt | ./hashtag-fuzz -w ./wordlist.txt -waf prime -cs 60 " X-header: FUZZ " -p ' 2-2.5 '
cat ./urls.txt | ./hashtag-fuzz -w ./wordlist.txt -waf pro -b ' cookie=value_session ' default = http://127.0.0.1:8080 com use -x (para burp), também um arquivo multi -valor e proxy com URLs válidos.
echo ' http://site.tld/FUZZ ' | ./hashtag-fuzz -w ./wordlist.txt -waf prime -cs 15 -t 50 -x
echo ' http://site.tld/FUZZ ' | ./hashtag-fuzz -w ./wordlist.txt -waf entry -x ' http://proxy1.com '
cat ./urls.txt | ./hashtag-fuzz -w ./wordlist.txt -waf common -cs 15 " header: header-val " -x ' http://proxy1.com ' -x ' http://proxy2.com '
echo ' http://site.tld/FUZZ ' | ./hashtag-fuzz -w ./wordlist.txt -waf pro -cs 100 -xf ./proxy.txtToda vez que cada pedaço enviado para a Target, o serviço Tor é reiniciado e o novo IP em Tomado, portanto, é necessário adicionar torções como serviço no sistema operacional
default = Socks5: //127.0.0.1: 9050 com uso -tor (para endereço local padrão Tor)
cat ./urls.txt | ./hashtag-fuzz -w ./wordlist.txt -waf prime -cs 15 " header: header-val " -tor
echo ' http://test.it/FUZZ ' | ./hashtag-fuzz -w ./wordlist.txt -waf common -cs 80 -tor socks5://proxy1.tor:8000Ajuda e documentos para add tor como serviço em qualquer sistema operacional
Se você precisar adicionar algum comando no FFUF, você pode escrevê-lo como string em -a/-argumento adicional de CMD
cat ./urls.txt | ./hashtag-fuzz -w ./wordlist.txt -waf common -d " data-var=FUZZ " -X " PUT " -a= " -mr '.*test' "
cat ./urls.txt | ./hashtag-fuzz -w ./wordlist.txt -waf prime -cs 15 -tor -a= ' -ac ' Se você quer fuzz, mas WAF ou CDN Block em alta taxa de solicitação, use essas técnicas juntas
cat ./urls.txt | ./hashtag-fuzz -w ./wordlist.txt -waf prime -cs 20 -tor
cat ./urls.txt | ./hashtag-fuzz -w ./wordlist.txt -waf prime -cs 30 -xf ./proxy.txtAtraso aleatório padrão no modo Prime entre 1-2, mas às vezes precisa personalizar:
cat ./urls.txt | ./hashtag-fuzz -w ./wordlist.txt -waf prime -cs 10 -tor -p ' 2-2.5 'Por padrão, os threads da alça, mas também podem contorná -lo:
cat ./urls.txt | ./hashtag-fuzz -w ./wordlist.txt -waf pro -cs 5 -tor -p ' 2.5-3 ' -t 1Um dos seguidores úteis para usar esse recurso, use Wirh Paramspider ou Paramspider
" urls_come_form_ParamSpider_with_FUZZ_keyword " | ./hashtag-fuzz -w ./wordlist.txt -waf pro -cs 50 -tor