
El Prime Toolkit de auditoría y explotación de Cross Site Request Forgery (CSRF).
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
Origin: null), así como bypasses de anulación de método y Content-Type.--max-urls, --max-depth y --crawl-timeout).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.
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.
Veamos algunos escenarios reales de XSRFProbe en acción:
Para obtener información completa sobre el uso, consulte las wikis — Uso general y Uso avanzado.
XSRFProbe se puede instalar fácilmente con un solo comando:
pip install xsrfprobe
pip install .
xsrfprobe --help
--browser, --auto-validate-poc) requieren además que geckodriver esté disponible en su PATH (o se señale mediante --geckodriver-path).xsrfprobe-output. En esta carpeta puede ver los registros detallados y la información recopilada durante los escaneos (pase --json para un informe legible por máquina).XSRFProbe es actualmente v3.0.0 y el trabajo está licenciado bajo la GNU General Public License (GPLv3).
¡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.
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.
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
| 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 |