miércoles, 21 de septiembre de 2011

Parches para SMF

¡Saludos!

Esta noche al conectarme a twitter me he encontrado con un enlace a una publicación de DaboWeb anunciando parches de seguridad para SMF. Echando un ojo al changelog aparece la vulnerabilidad que habíamos reportado por Julio, y que tras ninguna respuesta liberemos en el blog SMF 2.0 Hijacking. Ahora, casi 3 meses después, lo han reparado, por lo que ya no lo consideraemos como un 0-day.

Gracias a los desarrolladores de SMF que se han entretenido en subsanar esta vulnerabilidad, puesto que no ha sido la primera vez que (por lo menos por mi parte) hemos reportado algun fallo de seguridad y nos han ignorado totalmente.

Y por supuesto gracias a Seth, que descubrió otro vector para explotar la vulnerabilidad (y codeó el exploit).
5 0verl0ad Labs: septiembre 2011 ¡Saludos! Esta noche al conectarme a twitter me he encontrado con un enlace a una publicación de DaboWeb anunciando parches de segurida...

martes, 20 de septiembre de 2011

HTML5 [VI]: Drag'n'Drop attacks



¡Saludos!

El otro día publiqué las slides de Rosario Valotta sobre el "CookieJacking". En la presentación utilizaba la técnica de Drag'n'Drop para que la víctima enviase la cookie al atacante, asi que hoy voy a hacer un post explicando cómo funciona este vector.


¿Qué es Drag'n'Drop? Cuando nos referimos a este vocablo hacemos referencia a aquellos mecanismos de arrastrar un objeto y dejarlo en otro punto (p.e. cuando arrastramos un icono del escritorio y lo colocamos en otro punto). Actualmente con HTML5 se ha incluido esta función, siendo fácil su implementación:


<div draggable="true" ondragstart="event.dataTransfer.setData('text/plain','Test Drag and Drop');">
<h1>Test Drag and Drop</h1>
</div>
<br><input type="text" />


Si lo testeais, podreis comprobar que el texto "Test Drag and Drop" se puede coger con el ratón y ser arrastrado hasta el input, que al ser soltado el ratón, quedará rellenado con ese texto. Pero no siempre lo que creemos arrastrar es lo que realmente arrastramos };D


<div draggable="true" ondragstart="event.dataTransfer.setData('text/plain','¡Odio Twitter');">
<h1>¡Me gusta Twitter!</h1>
</div>
<br><input type="text" />


Como podeis ver pese a que creemos que estamos arrastrando el texto "¡Me gusta Twitter!", en realidad lo que arrastramos es "¡Odio Twitter!". De esta forma un usuario común pasaría por alto el engaño, sin percatarse de lo que ocurre. Esto es útil en el momento de ocultar el ataque, puesto que puede usarse otros pretextos más atractivos (como juegos atractivos, o puzzles con ¡TETAS!, nunca fallan) para que el usuario haga Drag'n'Drop (no debemos perder de vista de que es necesaria la interacción directa por parte del usuario).


Pero lo interesante de este vector no es esto, lo interesante es la posibilidad de bypassear SOP (Same Policy Origin). En síntesis SOP implica que los scripts ejecutados desde el lado del navegador (como JavaScript, por ejemplo) se apliquen únicamente al dominio de origen y no a otros, por lo que es bastante importante desde el punto de vista de la seguridad. La solución para evitar las restricciones SOP es utilizar un iframe, y hacer que el usuario haga "drop" sobre éste:


<div draggable="true" ondragstart="event.dataTransfer.setData('text/plain','0verl0ad.blogspot.com');">
<h1>Proof of Concept</h1>
</div>
<iframe src="http://google.com">
</iframe>


El texto "0verl0ad.blogspot.com" es mandado al iframe que apunta a Google, y se ejecuta la búsqueda.

En definitiva este puede ser un vector interesante para explotar determinadas vulnerabilidades, como ya lo demostró Rosario Valotta y 0-day de IE. El problema que tiene esta técnica es la necesidad de interacción por parte del usuario (como cualquier otro ataque de clickjacking) y ello conlleva a tratar de camuflar los exploits en forma de aplicaciones atractivas, como juegos o puzzles, para que el usuario haga Drag'n'Drop
5 0verl0ad Labs: septiembre 2011 ¡Saludos! El otro día publiqué las slides de Rosario Valotta sobre el "CookieJacking". En la presentación utilizaba la técni...

sábado, 17 de septiembre de 2011

Retos SQLi

Saludos,

Nuestro compañero Seth ha habilitado una web de prácticas vulnerable a SQLi. Existen diferentes niveles de dificultad, por lo que casi todo el mundo podría resolver al menos uno de ellos.

Si quereis intentarlo aquí os dejo la web => ¡¡Practica inyecciones SQL!!
5 0verl0ad Labs: septiembre 2011 Saludos, Nuestro compañero Seth ha habilitado una web de prácticas vulnerable a SQLi. Existen diferentes niveles de dificultad, por lo qu...

jueves, 15 de septiembre de 2011

Cookiejacking, 0-day de IE y Rosario Valotta

Saludos,

Hacía ya tiempo le estaba siguiendo el rastro a este tema, el del cookiejacking (robo , o "apropiación" como diría Grey, de cookies de sesión a través de UI Redressing), a partir de un enlace de Rosario Valotta que me mandó Seth en Mayo o Junio, no recuerdo bien, donde hablaba del 0-day de IE y su explotación mediante Drag-and-drop. El caso es que me he encontrado con la presentación que hizo en la Swiss Cyber Storm de este año y me ha encantando por varios motivos, entre el que destaco la imaginación e ingenio que aplica para ir sorteando cada obstáculo con el que se encuentra.


Presentación PDF => https://www.hacking-lab.com/nina/?wicket:interface=:1:articleContainer:downloadContainer:filelink::ILinkListener::

Video de la presentación => http://www.youtube.com/watch?v=VsSkcnIFCxM
5 0verl0ad Labs: septiembre 2011 Saludos, Hacía ya tiempo le estaba siguiendo el rastro a este tema, el del cookiejacking (robo , o "apropiación" como diría Gre...

domingo, 11 de septiembre de 2011

HTML5 [V]: Autofocus + onblur = Phising (Tabnapping)



Saludos,

Estuve echando un ojo al episodio 8 de MundoHackerTV cuando me encontré con un PoC en el cual usaban para averiguar qué páginas habían sido visitados algo que ya comenté hace un par de años, CSS History Hack. Este ataque los navegadores modernos ya lo bloquean, por lo que me da la sensación de que en esa demostración utilizaban algún navegador desactualizado. He intentado diferentes ideas para tratar de averiguar si un enlace había sido visitado, como la que menciono en el link que he dejado más arriba no pude hacerla funcionar intenté usar JavaScript para detectar un cambio de color en el link usando getComputerStyle pero tampoco resultó: al sacar el RGB de todos los links siempre tenía el mismo color, fuese o no visitado (aunque al visualizarlo en el navegador tuvieran diferentes colores), por lo que deduzco que discriminar entre visitado/no visitado es imposible actualmente Si alguien tiene info actualizada que deje un comentario.


Mencioné al principio la demostración de MundoHackerTV, pero no he explicado en qué consistía. La idea era entrar a una web, y al cambiar de pestaña en el navegador, esta web hiciera una redirección hacia un scamer de alguna web en que el usuario suela visitar (de ahí lo del CSS Hack History). La idea es que ciertas webs se suelen mantener abiertas, como las redes sociales, mientras que estamos navegando por otras pestañas. Al haber varias pestañas, existe la posibilidad de que el usuario se confunda y crea que el scam es la web original y deja allí sus datos. Para entenderlo mejor echad un vistazo al capitulo.

El PoC más simple que se me ha ocurrido (omitiendo la parte en que detecta si ha visitado facebook, que ya he explicado porqué no la he incluido) es el siguiente:


<script>
var pag ="http://www.google.com";
function redireccionar(){

location.href=pag;
}

</script>
<input type="text" onblur="redireccionar();" autofocus>


Para detectar si el usuario ha cambiado de pestaña usamos el evento onblur, que se disparará cuando se piera el foco en el elemento input. Al cambiar de pestaña, se pierde el foco y se disparará la redirección (en este caso google.com). Además, para que todo funcione, utilizo autofocus en el input, ya que de esta forma el foco se colocará directamente en el input y no hará falta de que el usuario haga click en él.


Me han informado via twitter de que esta técnica de phising se la denomina "tabnapping", asi que edito el título del post.
5 0verl0ad Labs: septiembre 2011 Saludos, Estuve echando un ojo al episodio 8 de MundoHackerTV cuando me encontré con un PoC en el cual usaban para averiguar qué págin...
< >