TESTING FOR
CLICKJACKING
OTG-CLIENT-009
By:
Ana Terrones
Antony Encarnación
what we will see today?
¿What is Clickjacking?
• ¿How to Test?
Create a “proof of concept”
• Clickjacking protection
Clickjacking
Un ataque de Clickjacking utiliza características aparentemente
inofensivas de HTML y JavaScript para forzar a la víctima a realizar
acciones no deseadas, como hacer clic en un botón que aparece para
realizar otra operación. Para llevar a cabo este tipo de técnica, el atacante
tiene que crear una página web aparentemente inofensiva que carga la
aplicación de destino mediante el uso de un iframe.
Una vez hecho esto, el atacante
podría inducir a la víctima a
interactuar con su página web ficticia
por otros medios (a través, por
ejemplo, de la ingeniería social).
How to test?
Tenemos que descubrir si el sitio web que estamos probando no tiene protecciones
contra los ataques de Clickjacking o, si los desarrolladores han implementado algunas
formas de protección, si estas técnicas son susceptibles de omisión. Una vez que
sepamos que el sitio web es vulnerable, podemos crear una "prueba de concepto"
para explotar la vulnerabilidad. El primer paso para descubrir si un sitio web es
vulnerable es verificar si la página web de destino podría cargarse en un iframe.
Para hacer esto, necesita crear
una página web simple que
incluya un marco que contenga
la página web de destino. El
código HTML para crear esta
página web de prueba se
muestra en el siguiente
fragmento de código:
How to test?
Proof of concept
USANDO CLICKBANDIT
USANDO JACK
DEMO-Clickbandit de Burp Suite
En este demo, usaremos la aplicación vulnerable OWASP Mutillidae II y Burp Suite para mostrar cómo
crear una POC de un ataque de clickjacking
1. Para empezar configuraremos Burp Suite para que actúe como proxy en el navegador, de modo que
podamos capturar solicitudes.
En el navegador Configuración en Burp Suite
DEMO-Clickbandit de Burp Suite
2. En Burp, vaya a la pestaña "Proxy" y asegúrese de
que la interceptación está activada.
3. A continuación en Mutillidae, simplemente navegue por el
sitio web donde se realizara el ataque de Clickjacking. Y luego
veremos que la solicitud aparece en Burp.
4. En la parte superior de la ventana, vaya al
menú "Burp" y seleccione "Burp Clickbandit" en el
menú desplegable. Aparecerá una nueva ventana
con instrucciones para usar esta herramienta.
DEMO-Clickbandit de Burp Suite
5. Siga las instrucciones haciendo clic en el botón
"Copiar Clickbandit al Portapapeles" que copia los
scripts al portapapeles.
6. A continuación accedemos a la
consola de JavaScript en el navegador y
pegamos el script copiado en el paso
anterior
DEMO-Clickbandit de Burp Suite
7. El banner de Clickbandit ahora aparecerá en la parte
superior del navegador, con opciones para iniciar y
finalizar la prueba de concepto.
8. Ahora solo tenemos que hacer la serie de clics que
queremos que haga la víctima. En este caso, simplemente
haremos clic en el botón “Login". Cuando haya terminado,
haga clic en "Finish" y se presentará la prueba del
concepto para su revisión.
También hay opciones aquí para acercar o alejar, cambiar la
transparencia, mover la posición del iframe con las teclas
de flecha o restablecer el ataque.
9. Cuando esté satisfecho, haga clic en el botón "Guardar"
para guardar el concepto localmente como un archivo
HTML para su posterior modificación y uso.
DEMO-Clickbandit de Burp Suite
10. Por ultimo, cuando se ejecuta el ataque y la víctima hace clic en el cuadro oculto si hemos insertado, se
muestra un mensaje que transmite la vulnerabilidad.
DEMO-JACK
Jack es una herramienta que permite realizar las POC de Clickjacking. Su instalación es muy simple, solo hay que
clonar su repositorio GitHub (git clone [Link] y acceder a la carpeta resultante.
Para ejecutarlo basta con acceder al archivo [Link]:
DEMO-JACK
Para ver cómo funciona, se utilizará la
siguiente página. Los campos “nombre de
usuario” y “contraseña” junto con el botón
Iniciar sesión serán los que posteriormente
serán superpuestos en el iframe:
A continuación, desde la ventana de
Jack se sitúa la URL en el campo del
mismo nombre y al pulsar en Load, si
la página es vulnerable a Clickjacking,
aparecerá cargada debajo del iframe
de Jack. Siguiendo con el ejemplo, el
resultado es el que sigue:
DEMO-JACK
Solo queda situar los campos Email, Password
y Login sobre los correspondientes del
formulario y pulsar en View. Acto seguido se
abrirá una nueva pestaña que contendrá la
prueba de concepto lista:
La nueva pestaña abierta contiene la página
legítima y sobre ésta el iframe con los
campos que sustituyen a los originales. Al
rellenar los campos y pulsar en Sign In
aparecerá en pantalla la información
introducida en ambos campos del
formulario:
MITIGACIÓN
CLIENT SIDE
SERVER SIDE
La cabecera X-Frame-Options sirve para prevenir que la página pueda ser abierta en un frame, o
iframe. De esta forma se pueden prevenir ataques de clickjacking sobre tu web.
Por ejemplo si la web [Link] contiene la cabecera X-FRAME-OPTIONS con el valor Allow-
From [Link] entonces la web [Link] solo podrá ser «enmarcada»
desde el dominio [Link]
Otra opción sería denegar siempre en enmarcado (DENY), o decirle que solo pueda ser enmarcada
desde el mismo origen (SAME-ORIGIN).
Si el servidor es apache, se puede usar el fichero htaccess,
agregando:
GraGRACIAS!cias