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
waf-bypass — Herramienta automatizada de pruebas de seguridad de WAF que detecta falsos positivos y falsos negativos utilizando más de 15 categorías de payloads, incluyendo SQLi, XSS, RCE e inyección GraphQL. Soporta Docker, salida JSON y payloads personalizados. | Kitploit
Herramientas/GitHubGitHub/nemesida-waf/waf-bypass
Escáneres de VulnerabilidadesPruebas de Seguridad de APIsEvasión de WAFSeguridad WebPruebas de Penetración
GitHubnemesida-waf/waf-bypass

waf-bypass

Herramienta automatizada de pruebas de seguridad de WAF que detecta falsos positivos y falsos negativos utilizando más de 15 categorías de payloads, incluyendo SQLi, XSS, RCE e inyección GraphQL. Soporta Docker, salida JSON y payloads personalizados.

Ver Repositorio
1.5k1856hace 1 mesRevisado por Kitploit
Sitio web

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

WAF Bypass Tool

WAF Bypass Tool es una herramienta de código abierto para analizar la seguridad de cualquier WAF en busca de Falsos Positivos y Falsos Negativos utilizando payloads predefinidos y personalizables. Revisa tu WAF antes de que lo haga un atacante. WAF Bypass Tool está desarrollado por el equipo de Nemesida WAF con la participación de la comunidad.

WAF Bypass Tool

No hagas nada ilegal

Está prohibido su uso con fines ilegales. No infrinjas la ley. No somos responsables de los posibles riesgos asociados con el uso de este software.

Cómo ejecutar

Ejecutar usando Docker

La versión más reciente de waf-bypass siempre está disponible a través de Docker Hub. Se puede obtener fácilmente mediante el siguiente comando:

root@kitploit:~
# docker pull nemesida/waf-bypass
# docker run nemesida/waf-bypass --host='example.com'

Ejecutar usando pipx

root@kitploit:~
# pipx install git+https://github.com/nemesida-waf/waf-bypass.git
# <pipx bin dir>/waf-bypass

Ejecutar directamente desde el código fuente usando CLI

root@kitploit:~
# git clone https://github.com/nemesida-waf/waf_bypass.git /opt/waf-bypass/
# python3 -m pip install -r /opt/waf-bypass/requirements.txt
# python3 /opt/waf-bypass/main.py --host='example.com'

Opciones

  • '--proxy' (--proxy='http://proxy.example.com:3128') - opción que permite especificar a dónde conectarse en lugar del host.

  • '--header' (--header 'Authorization: Basic YWRtaW46YWRtaW4=' --header 'X-TOKEN: ABCDEF') - opción que permite especificar el encabezado HTTP para enviar con todas las solicitudes (por ejemplo, para autenticación). Se permite el uso múltiple.

  • '--user-agent' (--user-agent 'MyUserAgent 1/1') - opción que permite especificar el User-Agent HTTP para enviar con todas las solicitudes, excepto cuando el User-Agent está establecido por el payload ("USER-AGENT").

  • '--block-code' (--block-code='403' --block-code='222') - opción que permite especificar el código de estado HTTP a esperar cuando el WAF bloquea. (por defecto es 403). Se permite el uso múltiple.

  • '--threads' (--threads=15) - opción que permite especificar el número de hilos de escaneo en paralelo (por defecto es 10).

  • '--timeout' (--timeout=10) - opción que permite especificar un tiempo de espera de procesamiento de solicitudes en segundos (por defecto es 30).

  • '--exclude-dir' - excluir el directorio de payloads (--exclude-dir='SQLi,XSS').

  • '--json-format' - una opción que permite mostrar el resultado del trabajo en formato JSON (útil para integrar la herramienta con plataformas de seguridad). Si no se especifica la opción, la salida será en formato de tabla (el formato por defecto).

  • '--details' - muestra los payloads de Falso Positivo y Falso Negativo. No compatible con la opción --json-format.

  • '--no-progress' - no mostrar barra de progreso.

  • '--curl-replay' - muestra el comando cURL para reproducir solicitudes de Falso Positivo, Falso Negativo o Fallidas. No compatible con la opción --json-format.

Formato JSON

Especificación de ejemplo de salida JSON:

root@kitploit:~
{
  "TARGET": "https://example.com", // definido por la opción --host
  "PROXY": {},                     // definido por la opción --proxy
  "HEADERS": {                     // definido por la opción --header
    "User-Agent": ""
  },
  "BLOCK-CODE": [                  // definido por la opción --block-code
    ...
  ],
  "THREADS": 50,                   // definido por la opción --threads
  "TIMEOUT": 30,                   // definido por la opción --timeout
  "EXCLUDE-DIR": [                 // definido por la opción --exclude-dir
    ...
  ],
  "FAILED": {                      // solicitudes con estado de procesamiento fallido
    "MFD/7.json": {
      "BODY": "WBHTTPSConnectionPool(host='example.com', port=443): Read timed out. (read timeout=1)"
    },
    ...
  },
  "PASSED": {                      // solicitudes aprobadas
    "UWA/3.json": {
      "URL": "403 RESPONSE CODE"
    },
    ...
  },
  "FALSED": {                      // solicitudes con estado de falso positivo
    ...
  },
  "BYPASSED": {                    // solicitudes con estado de falso negativo
    "UWA/26.json": {
      "URL": "200 RESPONSE CODE"
    },
    ...
  },
  "TestRequest": {                // solicitudes de prueba con estado de procesamiento, excluyendo aprobadas
    "FAILED": {},
    "FALSED": {
        "UWA/3.json": {
        "URL": "403 RESPONSE CODE"
        },
        ...
    }
    
  },
  "CURL": {                       // comando cURL para reproducir solicitudes de falso positivo y falso negativo
    "FALSED": {},
    "BYPASSED": {
      "UWA/26.json": {
        "URL": "curl -X GET -H 'Accept: */*' -H 'Accept-Encoding: gzip, deflate' -H 'Connection: keep-alive' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36' 'https://example.com/do.php#.png'"
      },
      ...
    }
  }
}

Payloads

Dependiendo del propósito, los payloads se encuentran en las carpetas adecuadas:

  • FP - Payloads de Falso Positivo
  • API - Payloads de prueba de API
  • CM - Payloads de método HTTP personalizado
  • GraphQL - Payloads de prueba de GraphQL
  • LDAP - Payloads de inyección LDAP
  • LFI - Payloads de inclusión de archivos local
  • MFD - Payloads multipart/form-data
  • NoSQLi - Payloads de inyección NoSQL
  • OR - Payloads de redirección abierta
  • RCE - Payloads de ejecución remota de código
  • RFI - Payloads de inclusión remota de archivos
  • SQLi - Payloads de inyección SQL
  • SSI - Payloads de inclusión del lado del servidor
  • SSRF - Payloads de falsificación de solicitudes del lado del servidor
  • SSTI - Payloads de inyección de plantillas del lado del servidor
  • UWA - Payloads de acceso no deseado
  • XSS - Payloads de Cross-Site Scripting

Escribe tus propios payloads

Al compilar un payload, se utilizan las siguientes zonas, método y opciones:

  • URL - ruta de la solicitud
  • ARGS - consulta de la solicitud
  • BODY - cuerpo de la solicitud
  • COOKIE - cookie de la solicitud
  • USER-AGENT - user-agent de la solicitud
  • REFERER - referer de la solicitud
  • HEADER - encabezado de la solicitud
  • METHOD - método de la solicitud
  • BOUNDARY - especifica el contenido del boundary de la solicitud. Aplicable solo a payloads en el directorio MFD.
  • ENCODE - especifica el tipo de codificación del payload (Base64, HTML-ENTITY, UTF-16) además de la codificación para el payload. Los valores múltiples se indican con un espacio (ej. Base64 UTF-16). Aplicable solo a las zonas ARGS, BODY, COOKIE y HEADER. No aplicable a payloads en los directorios API y MFD. No compatible con la opción JSON.
  • JSON - especifica que el cuerpo de la solicitud debe estar en formato JSON
  • BLOCKED - especifica que la solicitud debe ser bloqueada (prueba FN) o no (FP)

Excepto en algunos casos descritos a continuación, las zonas son independientes entre sí y se prueban por separado (si se especifican 2 zonas, el script enviará 2 solicitudes, comprobando alternativamente una y la segunda zona).

Para las zonas se puede usar el sufijo %RND%, que permite generar una cadena arbitraria de 6 letras y números. (ej.: param%RND=my_payload o param=%RND% O A%RND%B)

Puedes crear tus propios payloads; para ello, crea tu propia carpeta en la carpeta '/payload/', o coloca el payload en una existente (ej.: '/payload/XSS'). El formato de datos permitido es JSON.

Directorio API

Los payloads de prueba de API ubicados en este directorio se añaden automáticamente con un encabezado 'Content-Type: application/json'.

Directorio MFD

Para los payloads MFD (multipart/form-data) ubicados en este directorio, debes especificar el BODY (obligatorio) y BOUNDARY (opcional). Si no se establece BOUNDARY, se generará automáticamente (en este caso, solo se debe especificar el payload para el BODY, sin datos adicionales ('... Content-Disposition: form-data; ...').

Si se especifica un BOUNDARY, entonces el contenido del BODY debe formatearse de acuerdo con el RFC, pero esto permite múltiples payloads en BODY separados por BOUNDARY.

Se permiten otras zonas en este directorio (ej.: URL, ARGS, etc.). Independientemente de la zona, se añadirá el encabezado 'Content-Type: multipart/form-data; boundary=...' a todas las solicitudes.

Descargar herramienta