
Un fuzzer web extremadamente rápido y flexible.
Un fuzzer web extremadamente rápido y flexible
Filebuster es un script de fuzzing HTTP / descubrimiento de contenido con muchas características, diseñado para ser fácil de usar y rápido. Utiliza una de las clases HTTP más rápidas del mundo (de PERL) - Furl::HTTP. Además, el modelado de hilos está optimizado para ejecutarse lo más rápido posible.
Incluye un montón de características como:
Filebuster se actualiza a menudo. Se añadirán nuevas características regularmente.
Se requiere Perl versión 5.10 o superior
FileBuster delega muchas características en bibliotecas de terceros. Sin embargo, se pueden instalar fácilmente con el siguiente comando:
cpan -T install YAML Furl Benchmark Net::DNS::Lite List::MoreUtils IO::Socket::SSL URI::Escape HTML::Entities IO::Socket::Socks::Wrapper URI::URL Cache::LRU IO::Async::Timer::Periodic IO::Async::Loop
La opción -T hará la instalación mucho más rápida, pero si tienes problemas, elimínala para permitir que CPAN realice las pruebas por paquete.
Filebuster es un script Perl, por lo que no es necesaria instalación. Sin embargo, la mejor manera de usar Filebuster es creando un enlace simbólico en un directorio que esté incluido en la ruta. Por ejemplo:
ln -s /path/to/filebuster.pl /usr/local/bin/filebuster
Entonces podrás usarlo en todo el sistema
Debido a que a veces no es posible instalar todas las dependencias, proporciono un binario preempaquetado con todas las dependencias incluidas. Funciona incluso en distribuciones Linux ligeras. Esto se logró usando Perl Packer pp. He integrado este paso en el repositorio para que la versión empaquetada se construya automáticamente cuando se publique una nueva versión. Puedes descargar la última versión desde la sección Releases.
Si deseas empaquetarlo tú mismo, consulta los pasos del flujo de trabajo de Actions y encontrarás todos los comandos necesarios para ejecutar.
En la forma más básica, Filebuster se puede ejecutar simplemente usando la siguiente sintaxis:
filebuster -u http://yoursite/
Si deseas fuzzear la parte final de la URL, entonces no necesitas usar la etiqueta {fuzz} para indicar dónde inyectar.
El parámetro de lista de palabras (-w) no es obligatorio a partir de la versión 0.9.1. Si no se especifica, Filebuster intentará encontrar y cargar la lista de palabras "Fast" automáticamente.
-w - Rutas a listas de palabras a usar. Puedes especificar una lista aquí y FileBuster ignorará automáticamente los duplicados. Ejemplo: -w wordlist1.txt ../morewordlists/*.txt--hc - oculta los códigos de respuesta especificados. Ejemplo: --hc 403,400--hs - oculta respuestas que contengan una cadena en el cuerpo de la respuesta. Ejemplo: --hs "does not exist"--hsh - oculta respuestas que contengan una cadena en las cabeceras. Útil para ignorar redirecciones a páginas de inicio de sesión, por ejemplo. Ejemplo: --hsh "login.aspx"-e - FileBuster probará cada entrada en la lista de palabras con las extensiones proporcionadas también. Ejemplo: -e aspx,ashx,asmxPara obtener la ayuda completa de sintaxis con ejemplos, simplemente ejecuta filebuster --help.
Un ejemplo más complejo:
filebuster -u http://yoursite/{fuzz}.jsp -w /path/to/wordlist.txt -t 3 -x http://127.0.0.1:8080 --hs "Error"
Esto te permitiría fuzzear un sitio web con 3 hilos para encontrar páginas JSP, usando un proxy local y ocultando todas las respuestas con "Error" en el cuerpo.
Necesitarás comenzar construyendo el contenedor:
docker build -t filebuster .
Después, puedes ejecutarlo así:
docker run -ti --init --rm filebuster -u http://yoursite/
Si necesitas usar listas de palabras personalizadas, recuerda mapear el archivo, por ejemplo:
docker run -ti --init --rm -v /path/to/wordlist.txt:/filebuster/mywordlist.txt filebuster -u http://yoursite/ -w /filebuster/mywordlist.txt
Puedes crear un alias en tu shell y hacerlo (casi) transparente:
alias filebuster="docker run -ti --init --rm filebuster"
Ahora puedes simplemente ejecutarlo:
filebuster -u http://yoursite/
He creado algunas listas de palabras basadas en diferentes fuentes de la web junto con mis propios payloads personalizados que he encontrado durante mis pentests e investigación. Puedes encontrarlas en el directorio wordlists.
Si necesitas más listas de palabras, deberías echar un vistazo al excelente repositorio SecLists.
Si tienes algún problema o sugerencia, no dudes en ponerte en contacto.