lunes, 25 de enero de 2010

Ficheros flash vulnerables en la selva (Internet)

Hará cosa de un mes ví en la lista websecurity un mensaje con el título "XSS vulnerabilities in 8 millions flash files". El artículo lo podéis encontrar en el blog de un ucraniano y resumiendo, explica cómo encontrar a través de Google ficheros flash vulnerables en la selva (Internet).

Si léis el artículo (cosa que recomiendo) veréis que lo que se busca son ficheros flash que tengan url y clickTAG como parámetro. El problema es que lo introducido detrás de alguno de estos parámetros "suele" pasarse a la función getURL(), que como sabréis permite también la ejecución de código javascript.

Como no podía ser de otra manera vamos a ver qué debería un pentester realizar en una auditoría web para ver si existen ficheros flash vulnerables en el dominio objeto de su auditoria:

Lo primero, sería realizar una búsqueda en los principales motores de búsqueda, acotada al dominio de nuestra auditoría buscando ficheros .swf

  • filetype:swf inurl:url site:dominio.com
  • filetype:swf inurl:clickTAG site:dominio.com
  • filetype:swf inurl:tagcloud.swf site:dominio.com
Lo segundo sería realizar una revisión manual de la página para ver que no exista ningún fichero .swf que no haya sido indexado por los motores de búsqueda por alguna circunstancia.

Lo tercero es descargar el fichero .swf y decompilarlo con la herramienta Flare y ver el parámetro url, clickTAG y si va a ser posible la inyección. A continuación os muestro un ejemplo de fichero decompilado y que sería vulnerable:



Y por último, como es evidente introducir en el parámetro url de la dirección, nuestro código script de la siguiente manera:

http://victima.com/fichero.swf?url=javascript:alert('XSS')


La verdad es que es asombroso ver la cantidad de ficheros flash que sufren de esta vulnerabilidad. Espero que esto os sirva para vuestras auditorias.

2 comentarios :

plot dijo...

complicado el asunto, pero deberian dejar de atacar las paginas y mas bien crear otras mejores

Jose Selvi dijo...

@plot: Para eso están los desarrolladores. Cada uno tiene su función, y la seguridad tiene que venir de una simbiosis entre ambos.

Esa es mi humilde opinión, al menos :)