XSStrike: detectando y confirmando cross-site scripting

XSStrike · MIT

XSStrike prueba cross-site scripting. Lo que lo separa de un fuzzer genérico es que analiza cómo se refleja un parámetro — cuerpo HTML, atributo, contexto de script — y genera payloads que encajan en ese contexto, en lugar de disparar una lista fija y confiar en la suerte.

Instalación

git clone https://github.com/s0md3v/XSStrike.git
cd XSStrike && pip install -r requirements.txt
python xsstrike.py --help

Comandos principales

# una única URL parametrizada
python xsstrike.py -u "https://example.com/search?q=test"

# datos POST
python xsstrike.py -u "https://example.com/search" --data "q=test"

# crawl y luego prueba
python xsstrike.py -u "https://example.com" --crawl

# autenticado
python xsstrike.py -u "https://example.com/search?q=test" 
  --headers "Cookie: session=abc123"

# throttle
python xsstrike.py -u "https://example.com/search?q=test" --delay 2 --timeout 10

Salida

Legible por humano en la consola: el parámetro, el contexto de reflexión, el payload que disparó, y su confianza. XSStrike es una herramienta de análisis interactiva, no un productor de JSON — sus resultados se confirman a mano.

Dónde encaja en Tandera

XSStrike se ejecuta en la fase de analyze de recon_web_full — solo el flujo activo; envía payloads reales, así que se excluye del recon lite NonIntrusive. Trabaja sobre los parámetros que arjun descubrió y los endpoints que katana crawleó, concentrando el esfuerzo en inputs que realmente se reflejan.

Uso en un pentest

Un payload reflejado aún no es un finding. Confirma la ejecución — un alert real, un cambio real en el DOM — y captura un screenshot como evidencia. “Reflejado sin encoding” y “ejecuta script” son severidades distintas.

El contexto es todo el juego. El mismo input puede ser seguro en un contexto y explotable en otro. La detección de contexto de XSStrike es por qué encuentra casos que una lista de payloads genérica se pierde; lee qué contexto reporta, porque eso determina el impacto en el mundo real.

Haz throttle y coordina. Las pruebas de XSS escriben payloads en la aplicación. En cualquier cosa con inputs almacenados puedes persistir cadenas de prueba en lugares que usuarios reales ven — acuerda la ventana de prueba con el cliente y usa --delay.

El XSS almacenado necesita seguimiento manual. XSStrike es más fuerte en XSS reflejado. Para almacenado, úsalo para encontrar el punto de inyección, luego confirma el sink de ejecución a mano.

acceso anticipado

Consigue Tandera antes de tu próximo engagement.

Únete a la waitlist para acceso anticipado. Estamos incorporando equipos de pentest por oleadas.

Onboarding prioritario para equipos de pentest.
Línea directa con quienes lo construyen.
Precio de acceso anticipado, asegurado.

Sin spam, sin tarjeta. Cancela cuando quieras.

enespt-br