
XSRFProbe v3.0.0
El Prime Toolkit de auditoría y explotación de Cross Site Request Forgery (CSRF).
XSRFProbe
El Kit Definitivo de Auditoría y Explotación de Falsificación de Petición en Sitios Cruzados.
Acerca de
XSRFProbe es un kit avanzado de auditoría y explotación de Falsificación de Petición en Sitios Cruzados (CSRF/XSRF). Equipado con un potente motor de rastreo y numerosas comprobaciones sistemáticas, es capaz de detectar la mayoría de los casos de vulnerabilidades CSRF, sus correspondientes bypasses y, además, generar pruebas de concepto explotables para cada vulnerabilidad encontrada. Para más información sobre cómo funciona XSRFProbe, consulte XSRFProbe Internals en la wiki.
Wiki de XSRFProbe • Primeros pasos • Uso general • Uso avanzado • Internos de XSRFProbe • Galería
Algunas características
- Ejecuta una batería completa de comprobaciones sistemáticas — respaldadas por un motor de diffing/benchmarking de respuestas — antes de declarar un endpoint como vulnerable.
- Detecta y manipula activamente muchas implementaciones de tokens Anti-CSRF: cambio de método de solicitud, eliminación de token, valores vacíos/duplicados, tokens no vinculados a la sesión, cookies de doble envío y tokens de cabecera personalizada.
- Sonda la validación de Referer y Origin con bypasses del mundo real (eliminación de cabecera, trucos de regex/subdominio,
Origin: null), así como bypasses de anulación de método y Content-Type. - Analiza las protecciones de cookies SameSite, con enumeración opcional de subdominios (a través de crt.sh) para probar el bypass mediante subdominios hermanos.
- Funciona con un potente rastreador que ofrece un rastreo y escaneo deterministas y acotados (configurables mediante
--max-urls,--max-depthy--crawl-timeout). - Integración opcional con Firefox headless (Selenium) para pruebas dependientes del navegador y validación automática de los PoCs generados.
- Detección precisa de la fortaleza del token y análisis mediante comprobaciones de entropía y codificación.
- Puede generar tanto pruebas de concepto CSRF normales como maliciosamente explotables.
- Soporte nativo para valores de cookie personalizados, cabeceras genéricas y un informe JSON — cada hallazgo incluye una calificación de severidad y una condición de explotabilidad.
- El usuario tiene el control de todo lo que el escáner hace.
- Entorno de interacción amigable con soporte completo de verbose y registro detallado de errores, vulnerabilidades y tokens.
Pruebas de vulnerabilidad realizadas:
Cada comprobación que ejecuta XSRFProbe tiene un identificador único. El ID se muestra en la salida de la consola (por ejemplo, [T6] VULNERABLE: ...) y se almacena como el campo test_id de cada hallazgo en el informe JSON (junto con su severity y, cuando corresponda, una nota de exploitability bajo details), de modo que cada hallazgo se asigna a la prueba exacta que lo produjo.
| ID | Categoría | Comprobación |
|---|---|---|
D1 | Presencia de token | No hay token anti-CSRF presente (falsificación de solicitud genérica) |
D2 | Presencia de token | El formulario de inicio de sesión carece de token CSRF (login CSRF) |
T2 | Manipulación de token | Validación vinculada al método de solicitud (cambio GET ↔ POST) |
T3 | Manipulación de token | El token se puede omitir por completo |
T4 | Manipulación de token | El token no está vinculado a la sesión del usuario (reproducción entre sesiones) |
T5 | Manipulación de token | Token vinculado a una cookie no de sesión (p. ej., csrfKey) |
T6 | Manipulación de token | Cookie de doble envío ingenua (cookie == cuerpo, sin vinculación) |
T7 | Manipulación de token | Se acepta valor de token vacío |
T8 | Manipulación de token | El token de cabecera personalizada se puede omitir o falsificar |
M1 | Método / Content-Type | Anulación de método HTTP mediante parámetro _method |
M2 | Método / Content-Type | Anulación de método HTTP mediante cabecera X-HTTP-Method-Override |
M4 | Método / Content-Type | Bypass de validación mediante Content-Type alternativo |
R0 | Referer | La cabecera Referer no se valida al enviar el formulario |
R1 | Referer | Bypass de validación de Referer omitiendo la cabecera |
R2a | Referer | Bypass de Referer por regex — destino como subdominio atacante |
R2b | Referer | Bypass de Referer por regex — destino en la cadena de consulta |
R2c | Referer | Bypass de Referer por regex — destino en la ruta |
O1 | Origin | Bypass de validación de Origin con Origin: null |
O2 | Origin | Bypass de validación de Origin con un truco de subdominio |
O3 | Origin | Bypass de validación de Origin omitiendo la cabecera |
S2 | SameSite (navegador) | Bypass de SameSite=Strict mediante un gadget de redirección del lado del cliente |
S3 | SameSite (navegador) | Bypass de SameSite=Strict mediante XSS en un subdominio hermano |
S4 | SameSite (navegador) | Bypass de SameSite=Lax mediante flujo de actualización de cookie / OAuth |
C1 | Postura de cookies | Análisis del atributo SameSite de la cookie (None/Lax/Strict) |
C2 | Postura de cookies | No se establece el atributo SameSite en las cookies |
E1 | Fortaleza del token | El token usa una codificación hash débil/estructurada |
A1 | Fortaleza del token | Análisis de predecibilidad/falsificabilidad del token post-escaneo |
Las comprobaciones
S*requieren la integración opcional con navegador headless (--browser). Las comprobacionesT*/M*/R*/O*son comprobaciones a nivel HTTP controladas por el motor de diffing/benchmarking de respuestas.
Galería
Veamos algunos escenarios reales de XSRFProbe en acción:
Instalación y uso
Para obtener información completa sobre el uso, consulte las wikis — Uso general y Uso avanzado.
Instalación mediante Pypi:
XSRFProbe se puede instalar fácilmente con un solo comando:
pip install xsrfprobe
Instalación manual:
- Para lo básico, el primer paso es instalar la herramienta:
pip install .
- Ahora, la herramienta se puede ejecutar mediante:
xsrfprobe --help
- Las pruebas que dependen del navegador (
--browser,--auto-validate-poc) requieren además que geckodriver esté disponible en suPATH(o se señale mediante--geckodriver-path). - Después de probar XSRFProbe en un sitio, se crea una carpeta de salida en su directorio de trabajo actual como
xsrfprobe-output. En esta carpeta puede ver los registros detallados y la información recopilada durante los escaneos (pase--jsonpara un informe legible por máquina).
Versión y licencia
XSRFProbe es actualmente v3.0.0 y el trabajo está licenciado bajo la GNU General Public License (GPLv3).
Advertencias
¡No use esta herramienta en un sitio en producción!
Esto se debe a que esta herramienta está diseñada para realizar todo tipo de envíos de formularios automáticamente, lo que podría sabotear el sitio. A veces puede estropear la base de datos y, muy probablemente, provocar una denegación de servicio (DoS) en el sitio.
Pruebe en una configuración/sitio desechable/de prueba.
Descargo de responsabilidad
El uso de XSRFProbe para probar sitios web sin un acuerdo mutuo previo puede considerarse una actividad ilegal. Es responsabilidad del usuario final cumplir con todas las leyes locales, estatales y federales aplicables. El autor no asume ninguna responsabilidad ni se hace responsable por cualquier uso indebido o daño causado por este programa.
Palabras del autor
Este proyecto se basa enteramente en mi propia investigación y mi propia experiencia con aplicaciones web sobre ataques de Falsificación de Petición en Sitios Cruzados. Puede explorar el código fuente para ayudarle a comprender cómo se construyó este kit. Las solicitudes de extracción útiles, ideas y problemas son muy bienvenidos. Si desea ver cómo se está desarrollando XSRFProbe, consulte el Tablero de Desarrollo.
Elaborado con ♡ por @0xInfection