# XSStrike: detectando e confirmando cross-site scripting

> Como instalar e executar o XSStrike, por que payloads sensíveis a contexto superam os genéricos, e como manter o teste de XSS dentro do escopo.

O `XSStrike` testa cross-site scripting. O que o separa de um fuzzer genérico é que ele analisa como um parâmetro é refletido — corpo HTML, atributo, contexto de script — e gera payloads que se encaixam nesse contexto, em vez de disparar uma lista fixa e torcer.

## Instalação

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

## Comandos principais

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

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

# crawl e então testa
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
```

## Saída

Legível por humano no console: o parâmetro, o contexto de reflexão, o payload que disparou, e sua confiança. O XSStrike é uma ferramenta de análise interativa, não um produtor de JSON — seus resultados são confirmados à mão.

## Onde ele entra no Tandera

O XSStrike roda na fase de **analyze** do `recon_web_full` — apenas o fluxo ativo; ele envia payloads reais, então é excluído do recon lite `NonIntrusive`. Trabalha sobre os parâmetros que o `arjun` descobriu e os endpoints que o `katana` crawleou, concentrando esforço em inputs que são de fato refletidos.

## Usando em um pentest

**Um payload refletido ainda não é um finding.** Confirme a execução — um alert real, uma mudança real no DOM — e capture um screenshot como evidência. "Refletido sem encoding" e "executa script" são severidades diferentes.

**O contexto é todo o jogo.** O mesmo input pode ser seguro num contexto e explorável em outro. A detecção de contexto do XSStrike é por que ele acha casos que uma lista de payloads genérica perde; leia qual contexto ele reporta, porque é isso que determina o impacto no mundo real.

**Faça throttle e coordene.** O teste de XSS grava payloads na aplicação. Em qualquer coisa com inputs armazenados você pode persistir strings de teste em lugares que usuários reais veem — acorde a janela de teste com o cliente e use `--delay`.

**XSS armazenado precisa de acompanhamento manual.** O XSStrike é mais forte em XSS refletido. Para armazenado, use-o para achar o ponto de injeção, depois confirme o sink de execução à mão.

---

Canonical: https://tandera.io/pt-br/tools/xsstrike
This page as markdown: https://tandera.io/pt-br/tools/xsstrike.md
Index for agents: https://tandera.io/llms.txt

Every page here is also available as markdown: append `.md` to the path (e.g. `/recon.md`, `/index.md` for this homepage, `/blog/<slug>.md`), or request the canonical path with `Accept: text/markdown`.
