Salto de restricciones con "clickjacking" en Joomla!

Ajay Singh Negi ha descubierto un problema de seguridad en Joomla! que podría permitir a un atacante eludir restricciones de seguridad y ataques de cross-site request forgery (CSRF) a través de la técnica del "clickjacking".

¿Qué es el Clickjacking? 
El término clickjacking fue acuñado por Jeremiah Grossman y Robert Hansen en 2008 (ya hablamos de el aquí en Hackplayers). También conocido como UI redressing, se resume en lo siguiente: un usuario hace clic sobre un enlace o botón que está viendo y en realidad lo hace sobre otro enlace controlado por terceros. El clickjacking puede ser entendido como una variante del problema de reemplazo confuso
y para referirse a cualquier tipo de técnica que implique el que un usuario interaccione con una web creyendo que en realidad lo está haciendo con otra.
 
CSRF es una técnica que permitiría realizar peticiones HTTP sin una correcta validación. Por ejemplo, imaginemos que un usuario se encuentra validado en una página que necesita autenticación. Desde el navegador, visita otra web que esconde una petición HTTP hacia esa página que necesita validación. Esa petición HTTP, en forma de enlace, se carga por la víctima sin saberlo y realiza una acción sobre la página en la que se encuentra autenticada. Esto sería un fallo de CSRF por parte de la página que necesita autenticación  puesto que no valida correctamente que las peticiones provengan de su propio dominio. Para impedir ésto, las páginas suelen introducir un sistema de control que impide que una petición desde otra web sea válida. A su vez, para eludirlo, los atacantes utilizan técnicas como clickjacking (un término acuñado en 2008), que permite realizar ataques CSRF aunque se hayan implementado ciertas técnicas para evitarlo.

El problema es que Joomlapermite a cualquier usuario realizar acciones a través de peticiones HTTP que no son convenientemente validadas. Si un usuario visita un enlace especialmente manipulado hacia una plataforma Joomla!, se podrían realizar acciones sobre el portal y el atacante podría así eludir restricciones de seguridad. No se han dado más detalles sobre la vulnerabilidad, pero probablemente permitiría que un usuario suplantase a otro sin necesidad de conocer la contraseña.

Este fallo se da en las versiones 2.5.7 y anteriores. Se ha solucionado en la versión 2.5.8 disponible desde www.joomla.org:


Como siempre tratamos en no quedarnos en la mera información y pasamos a una rica prueba de concepto:


Sed Buenos ;D

8 comentarios :

  1. No os preocupeis en breve me cebare un poco mas con este fallo ...no ando muy sobrao de tiempo...

    ResponderEliminar
  2. lo prometido es deuda he aclarado un poco mas la entrada....aunque se explica por si sola

    ResponderEliminar
  3. No me suelo perder ninguna de tus entradas en el blog, solo queria felicitarte y agradecerte tu dedicacion al mismo y animarte a que sigas ahi dandolo todo e informando de la manera amena y esclarecedora que lo vienes haciendo desde siempre. Un saludo y gracias :)

    ResponderEliminar
  4. Tengo una duda. ¿Como bypasseaste el login? osea, ¿simplemente colocaste el link target.com/administrator/index.php?option=com_users? o hiciste otro paso. Esa es mi duda, Saludos y excelente blog :D

    ResponderEliminar
  5. si lees un poco mas atentamente la entrada tu mismo te vas a dar cuenta:

    --"imaginemos que un usuario se encuentra validado en una página que necesita autenticación. Desde el navegador, visita otra web que esconde una petición HTTP hacia esa página que necesita validación."

    ResponderEliminar
  6. El problema es que Joomla! permite a cualquier usuario realizar acciones a través de peticiones HTTP que no son convenientemente validadas. Si un usuario visita un enlace especialmente manipulado hacia una plataforma Joomla!, se podrían realizar acciones sobre el portal y el atacante podría así eludir restricciones de seguridad

    ResponderEliminar