Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
ftw — Framework para probar WAFs (FTW!) | Kitploit
Herramientas/GitHubGitHub/fastly/ftw
Escáneres de VulnerabilidadesEvasión de WAFSeguridad WebPruebas de PenetraciónDevSecOpsArchived
GitHubfastly/ftw

ftw

Framework para probar WAFs (FTW!)

Ver Repositorio
263587hace 3 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Marco para probar WAFs (FTW)

Build Status

Propósito

Este proyecto fue creado por investigadores de ModSecurity y Fastly para ayudar a proporcionar pruebas rigurosas para reglas de WAF. Utiliza el OWASP Core Ruleset V3 como línea base para probar reglas en un WAF. Cada regla del conjunto de reglas se carga en un archivo YAML que emite solicitudes HTTP que activarán estas reglas.

Objetivos / Casos de uso incluyen:

  • Encontrar regresiones en implementaciones de WAF mediante el uso de integración continua y emitiendo ataques repetibles a un WAF
  • Proporcionar un marco de pruebas para nuevas reglas en ModSecurity; si se envía una regla, DEBE tener pruebas positivas y negativas correspondientes
  • Evaluar WAFs frente a un conjunto de reglas base común y acordado (OWASP)
  • Probar y verificar reglas personalizadas para WAFs que no forman parte del conjunto de reglas base

Instalación

  • git clone [email protected]:fastly/ftw.git
  • cd ftw
  • Asegúrate de que pip esté instalado apt-get install python-pip
  • pip install -r requirements.txt

Ejecución de pruebas solo con comprobaciones de contenido HTML y código de estado

  • Crea archivos YAML que apunten a tu servidor web con un WAF delante de él
  • py.test test/test_default.py --ruledir test/yaml

Aprovisionamiento de Apache+Modsecurity+OWASP CRS

Si necesitas un entorno para probar reglas de WAF, se ha creado uno con Apache, Modsecurity y la versión 3.0.0 del conjunto de reglas base de OWASP. Esto se puede implementar mediante:

  • Clonando el repositorio: git clone https://github.com/fastly/waf_testbed.git
  • Escribiendo vagrant up

Ejecución de pruebas sobrescribiendo la dirección de destino en los archivos yaml a un dominio personalizado

  • inicia tu servidor web de pruebas
  • py.test test/test_default.py --ruledir=test/yaml --destaddr=domain.com --port 443 --protocol https

Ejecutar prueba de integración, servidor web local, puede requerir usar sudo

  • py.test test/integration/test_logcontains.py -s --ruledir=test/integration/

CÓMO INTEGRAR LOGS

  1. Crea un archivo *.py con las importaciones necesarias, un ejemplo se muestra en test/integration/test_logcontains.py
  2. Todas las funciones que comiencen con test* serán ejecutadas por py.test, así que crea una función def test_somewaf
  3. Implementa una clase que herede de LogChecker
  4. Implementa la función get_logs(). FTW llamará a esta función después de ejecutar la prueba, y establecerá las fechas y horas de self.start y self.end
  5. Usa la información de las variables datetime para recuperar los archivos de tu WAF, ya sea un archivo o una llamada API
  6. Obtén los logs, almacénalos en un arreglo de cadenas y devuélvelos desde get_logs()
  7. Haz uso de fixtures de py.test. Usa un decorador de función @pytest.fixture, devuelve tu nuevo objeto . Cada vez que uses un argumento de función en tus pruebas que coincida con el nombre de ese , instanciará tu objeto y hará más fácil ejecutar pruebas. Un ejemplo de esto está en el archivo Python del paso 1.

Realizando solicitudes HTTP de forma programática

Aunque se prefiere hacer solicitudes usando el formato YAML, a menudo las pruebas automatizadas requieren hacer muchas solicitudes dinámicas. En tal caso, se recomienda usar el marco py.test para producir casos de prueba que se puedan ejecutar como parte del todo. Generalmente, hacer una solicitud HTTP es simple:

  1. crea una instancia de la clase HttpUA()
  2. crea una instancia de la clase Input() proporcionando los parámetros que no quieras que tengan valores por defecto
  3. proporciona la instancia de la clase de entrada a HttpUA.send_request()

Para algunos ejemplos, consulta las pruebas de integración http

Descargar herramienta
LogChecker
@pytest.fixture
  • Escribe una configuración de prueba en el formato *.yaml como se ve en test/integration/LOGCONTAINSFIXTURE.yaml. La línea log_contains requiere una cadena que sea una expresión regular. FTW compilará la cadena log_contains de cada etapa en el archivo YAML en una expresión regular. Luego, esta expresión regular se usará junto con las líneas de logs pasadas desde get_logs() para buscar una coincidencia. La cadena log_contains debe ser un identificador de regla único, ya que FTW es codicioso y pasará a la primera coincidencia. Los falsos positivos se mitigan con la hora de inicio/fin pasada al objeto LogChecker, pero es mejor mantenerse seguro y usar expresiones regulares únicas.
  • Para cada etapa, se llama a la función get_logs(), así que asegúrate de tener en cuenta las llamadas API si así es como recuperas tus logs.