Saltar al contenido
OPS // KITitspentest.sh

X-COR

CORScanner

Escáner en Python que envía headers Origin manipulados para encontrar y confirmar configuraciones CORS incorrectas a escala.

Sitio oficialVolver al catálogo

RESUMEN

CORScanner (github.com/chenjj/CORScanner) es una herramienta en Python centrada en una sola tarea: enviar un lote de headers Origin manipulados — incluyendo orígenes arbitrarios reflejados, origin null y variaciones de subdominio/prefijo/sufijo del origen real — contra una URL o lista de hosts, y comprobar si los headers Access-Control-Allow-Origin y Access-Control-Allow-Credentials de la respuesta los reflejan.

Construido sobre gevent para concurrencia en vez de threads normales, puede recorrer listas grandes de hosts (-i domains.txt -t 100) con suficiente velocidad para integrarse en un pipeline de recon, marcando cada host cuya política CORS parezca permisiva para que el tester confirme manualmente cuáles filtran realmente datos autenticados entre orígenes.

CASOS DE USO

Casos de uso en un engagement

  • 01

    Probar en lote una lista de subdominios enumerados en busca de configuraciones CORS de origen reflejado o null.

  • 02

    Confirmar si un endpoint de API refleja un header Origin arbitrario junto con Access-Control-Allow-Credentials: true.

  • 03

    Revisar lógica de validación de origen débil (bypass por regex vía trucos de subdominio o sufijo) en un objetivo puntual durante testing manual.

  • 04

    Pasar una lista grande de hosts de la fase de recon por un escaneo concurrente rápido antes de priorizar la revisión manual de CORS.

PRIMEROS PASOS

Con los hosts ya enumerados, para revisar en lote la política CORS de cada uno en busca de reflejo de origen o null-origin que merezca seguimiento manual.

  1. Confirma que el host o la lista de hosts objetivo está dentro del alcance autorizado.
  2. Instala las dependencias de Python de CORScanner (pip install -r requirements.txt).
  3. Ejecútalo contra una única URL, o contra un archivo de hosts con un número de threads para concurrencia.
  4. Revisa los resultados marcados y reprodúcelos manualmente con curl o Burp Repeater para confirmar los headers de respuesta reales.
  5. Documenta qué orígenes fueron reflejados y si se permitieron credenciales antes de reportarlo como explotable.
python3 cors_scan.py -u https://target.example.com -v

ANTES DE USARLA

Qué revisar antes de lanzarla

Que el escáner marque un Origin reflejado no prueba impacto por sí solo — confirma que el endpoint realmente devuelve datos sensibles ligados a la sesión antes de tratarlo como hallazgo.

El modo con threads/gevent contra una lista grande de hosts genera muchas peticiones rápidamente; confirma los rate limits y el alcance antes de apuntarlo a infraestructura de producción.

Que se refleje el origen no confirma por sí solo que las peticiones con credenciales funcionen de extremo a extremo — verifícalo con un navegador real o una petición autenticada que confirme la lectura entre orígenes.

SIGUE EXPLORANDO

Ver toda la fase →