
Escáner de seguridad de API asíncrono en Rust para CORS, CSP, GraphQL, JWT, OpenAPI y comprobaciones activas de postura de API.
If this project helps your work, support ongoing maintenance and new features.
ETH Donation Wallet
0x11282eE5726B3370c8B480e321b3B2aA13686582
Scan the QR code or copy the wallet address above.
Async, modular API security scanner for API baseline testing and regression detection.
Combines discovery with targeted checks (CORS/CSP/GraphQL/OpenAPI/JWT/API Security) using adaptive concurrency and CI-ready outputs (NDJSON/SARIF).
Use cases: offense for red-team/API pentest discovery and exploit validation, and defense for CI/CD regression gating, continuous API hardening, and early misconfiguration detection.
Scanning at scale? See Triage Mode — scan 5000 targets in 20 minutes with core security checks, then use Enrich Mode to add threat intelligence context (ports, CVEs, ASN, domain age) to findings.
ApiHunterapihunterapi_scannerapihunter (default for cargo run)Set these in the GitHub repository settings for discoverability:
Async API security scanner for CORS/CSP/GraphQL/JWT/OpenAPI and active API posture checks.https://github.com/Teycir/ApiHunterrust, security, api-security, scanner, graphql, cors, csp, jwt, openapi, sarif, ndjsonflowchart LR A[CLI apihunter] --> B[main.rs] D[Input Sources] --> E[Pre-filter + Discovery] B --> C[HttpClient + Config] E --> F[runner.rs] C --> F
F --> G1[Passive scanners]
F --> G2[Active scanners]
I[template-tool] --> H[CVE templates]
H --> G2
G1 --> J[Findings]
G2 --> J
J --> K[Reporter]
K --> L[Auto Reports]
K --> M[CI/CD Controls]
## ¿Por qué ApiHunter?
### Ventajas principales
- **Arquitectura centrada en API**: Diseñado específicamente para APIs REST/GraphQL, no adaptado de escáneres de aplicaciones web
- **Reducción inteligente de falsos positivos**:
- Detección catch-all de SPA con sondeos de prueba
- Validación de secretos según contexto (frontend vs backend)
- Validación de contenido del cuerpo y verificación de referer
- Huella digital de respuestas para saltar hallazgos duplicados
- **Seguro para producción por diseño**:
- Concurrencia adaptativa (AIMD) que reduce la velocidad en caso de errores
- Límite de velocidad por host con retrasos configurables
- Controles de cortesía (reintentos, tiempos de espera, evasión de WAF)
- Modo de prueba para comprobaciones activas
- **Sigilo y evasión**:
- Rotación de User-Agent en tiempo de ejecución desde un conjunto curado (assets/user_agents.txt)
- Retrasos aleatorios en las solicitudes con jitter
- Cumplimiento de retraso por host (evita patrones de ráfaga)
- Lógica de reintento con retroceso exponencial
- Inyección de encabezados personalizados para mezclarse con tráfico legítimo
- Temporización adaptativa basada en respuestas del servidor
- Sin huellas dactilares de escáner codificadas en modo predeterminado
### Inmersión profunda en técnicas de sigilo
ApiHunter utiliza varias técnicas de sigilo para evitar la detección por parte de WAF (Firewall de Aplicaciones Web) y sistemas de protección contra bots:
#### 1. Rotación de User-Agent
**Qué hace:** Cicla aleatoriamente entre más de 100 cadenas de User-Agent reales de navegador desde un archivo (`assets/user_agents.txt`)
**Por qué funciona:** Los bots suelen usar el mismo User-Agent (como `curl/7.68.0`). Al hacerse pasar por Chrome, Firefox, Safari, etc., te mezclas con el tráfico legítimo
**Analogía simple:** Como usar diferentes disfraces en lugar de usar siempre el mismo uniforme
#### 2. Temporización aleatoria y jitter
**Qué hace:** Agrega retrasos aleatorios entre solicitudes (controlado por `--delay-ms`) con jitter (pequeñas variaciones aleatorias)
**Por qué funciona:** Los bots envían solicitudes en intervalos perfectos (exactamente 100ms de diferencia). Los humanos son impredecibles. La temporización aleatoria hace que el tráfico parezca orgánico
**Analogía simple:** Caminar con pasos irregulares en lugar de marchar como un robot