Tengo una página web que devuelve código de secuencia de comandos sin formato con el encabezado Content-Type: text/javascript
. Sin embargo, encontré que hay un xss reflexivo en uno de los parámetros pasados a la url que se copia en el javascript devuelto.
Esta es la configuración.
URL:
www.mysite.com/js?p1=data&p2=NodeFrame.jsResponse
Javascript:
/**/NodeFrame.jsResponse({"success":true,"data":{"id":0,"jdata":[]}});
Ahora el XSS que he creado va así:
URL:
www.mysite.com/js?p1=data&p2=NodeFrame.jsResponse({"success":true,"data":{"id":0,"jdata":[]}});alert(1);//
Javascript:
/**/NodeFrame.jsResponse({"success":true,"data":{"id":0,"jdata":[]}});alert(1);//({"success":true,"data":{"id":0,"jdata":[]}});
Para que quede claro, los valores del parámetro p2, se usan sin autorización en el script devuelto, como el nombre de la función.
La respuesta HTTP tiene Content-Type: text/javascript
, en ella. Y el script no está incrustado dentro de un documento html.
¿Hay alguna posibilidad de que el código se pueda ejecutar en un navegador? Estoy preocupado por los navegadores antiguos y eso básicamente.
Supongamos que X-Content-Type-Options: nosniff
no está configurado, ¿hay algún navegador que realmente lo muestre? Si es así, ¿puedo obtener un PoC o una versión de navegador para probar?
Editar :
La pregunta es, ¿cualquier versión de cualquier navegador olerá un código de script sin procesar con el conjunto de encabezados Content-Type: text/javascript
, dado que X-Content-Type-Options: nosniff
no está establecido?