
Un escáner simple de mala configuración de CORS
Basado en la investigación de James Kettle
CORStest es una herramienta rápida y sencilla en Python 3 para encontrar configuraciones incorrectas de Intercambio de Recursos de Origen Cruzado (CORS). Toma como entrada un archivo de texto que puede contener una lista de nombres de dominio o URLs. Actualmente, se detectan las siguientes vulnerabilidades potenciales enviando un cierto encabezado de solicitud Origin y verificando el encabezado de respuesta Access-Control-Allow-Origin:
null a través de un iframe en sandboxTenga en cuenta que estas vulnerabilidades/configuraciones incorrectas dependen del contexto. En la mayoría de los escenarios, solo pueden ser explotadas por un atacante si el encabezado Access-Control-Allow-Credentials está presente (consulte la opción -q).
usage: corstest.py [arguments] infile
positional arguments:
infile File with domain or URL list
optional arguments:
-h, --help show this help message and exit
-c name=value Send cookie with all requests
-p processes multiprocessing (default: 32)
-s always force ssl/tls requests
-q quiet, allow-credentials only
-v produce a more verbose output
Uso de CORStest para detectar configuraciones incorrectas en los 750 sitios principales de Alexa (con Access-Control-Allow-Credentials):

Ejecutando este CORStest en los 1 millón principales sitios de Alexa revela los siguientes resultados:

Tenga en cuenta que los números absolutos son bastante bajos, porque solo el 3% de los 1,000,000 sitios web probados tenían CORS habilitado en su página principal y pudieron analizarse para detectar configuraciones incorrectas. Esta prueba tomó alrededor de 14 horas en una línea decente (DSL). Si tiene una conexión a Internet rápida, intente aumentar el número de procesos paralelos a -p50 o más.
Lea más sobre los antecedentes técnicos de las configuraciones incorrectas de CORS en este excelente artículo de blog o vea esta charla. Una evaluación a gran escala de las configuraciones incorrectas de CORS usando CORStest está documentada aquí.