lunes, 22 de noviembre de 2010

Hackeando la web de la FISI

Hola a todos, este post va dedicado con mucho cariño a nuestra querida facultad por su X aniversario. ¡Feliz X aniversario FISI!

Hace poco publicamos una serie de posts sobre hacking de webs hechas con Joomla. Pues bien, la pagina de la facultad esta hecha con Joomla ¿O no?

En este post, vamos a aplicar lo aprendido en la serie "Juaqueando webs con Joomla" y mostraremos como logramos juaquear la pagina web de la FISI xD

¡A darle pues!

Como ya sabemos que la pagina esta hecha en Joomla, vamos a pasar directamente a la busqueda de componentes. Así que en Google buscamos:

site:sistemas.edu.pe inurl:index.php?option

Obtenemos un solo resultado de un componente llamado "com_sefservicemap". Si le buscamos vulnerabilidades pues no hay nada. Probemos con la otra busqueda:

site:sistemas.edu.pe inurl:/component/

Hey, ahora tuvimos algo más de suerte, salen un montón de resultados. Aunque casi todos son del componente com_content que es el encargado de mostrar los articulos de Joomla. Buscamos exploits para com_content y encontramos unos cuantos sin embargo luego de testearlos parece que la FISI no es vulnerable a estos exploits.

Tras revisar los resultados de google detenidamente encontramos un componente algo sospechoso: com_deudas


Parece un componente sospechoso porque el nombre esta en español. Además se llama "deudas". Es de suponerse que debe ser un componente de propia fabricación. Demosle clic a ver que pasa:


Ahí está, es un componente que sirve para que los alumnos consulten sus deudas. Pero hace mucho que debe estar fuera de uso por que desde la pagina principal del site no hay ninguna referencia a este componente. Menos mal nuestro buen amigo Google todo lo sabe y todo lo recuerda }:]

Y ahora qué, no vamos a encontrar exploits para este componente en las paginas que ya sabemos. Es que es un componente hecho a medida.

Pues le metemos una comilla al formulario a ver que pasa y ya. Ahí vamos:


¿Y qué tenemos? Un bonito error de sintaxis en la orden SQL xD

Ahora sabemos que es vulnerable a SQLi. Y ya sabemos como explotar un SQLi ¿Verdad? }xD

Bueno vamos a jugar un poco con el SQLi pa ver que podemos hacer. Primero generare una tautologia para ver si me puedo listar todos los registros de la tabla.

En el campo "Apellido Materno" (todas las pruebas las haré en este campo) escribí:

' or 1=1#

y este fue el resultado:


Pues hay 1416 registros en la tabla xD Bien ahora que sabemos que el SQLi funciona pues a explotarlo xD

El primer paso es averiguar cuantas columnas hay en la tabla. Eso se puede hacer usando la orden ORDER BY que ordena los resultados según el numero de columna que le indiquemos. Pero si le indicamos un numero mayor al numero de columnas de la tabla entonces producirá un error y así sabremos cuantas columnas hay en la tabla ;)

Ya probé y estos fueron los resultados:

' ORDER BY 1# (OK)
' ORDER BY 2# (OK)
' ORDER BY 3# (OK)
' ORDER BY 4# (OK)
' ORDER BY 5# (OK)
' ORDER BY 6# (OK)
' ORDER BY 7# (OK)
' ORDER BY 8# (OK)
' ORDER BY 9# (Unknown column)

Entonces podemos concluir que hay 8 columnas en la tabla. El siguiente paso es averiguar donde se muestra cada campo de la respuesta.

Eso lo averiguamos con la siguiente orden:

' UNION SELECT 1,2,3,4,5,6,7,8#


Y esta es la disposición de los campos:


Los campos 1, 2, 4, 5 y 6 aparecen en el titulo una sola vez sin embargo los campos 8, 7 y 3 aparecen en la tabla y son los que se repiten para cada registro en la respuesta de la base de datos. Así que usaremos estos campos para mostrar la informacion que queremos.

Y ¿Que información queremos? ¡Pues los usuarios y contraseñas de Joomla!

Para listar los usuarios y contraseñas de Joomla usaremos esta orden:

' UNION SELECT 1,2,convert(username using latin1),4,5,6,convert(usertype using latin1),convert(password using latin1) FROM jos_users#

Y ahí lo tenemos:


Lo he emborronado un poco, según yo, por seguridad xD

Ya tenemos la lista de usuarios y contraseñas. Ahora a crackearlas. Yo usé esta pagina:

http://www.cmd5.org/

El hash del Super Administrator no estaba pero si el del Manager. Bueno de todos modos nos sirve xD


Como se observa en la imagen el hash fue encontrado pero no es gratuito. Aunque solo cuesta $1.00 dolar xD lo voy a dejar ahí. Ya ustedes imaginen que podría pasar }:]

Para terminar quisiera decir que el error ya fue reportado y corregido. A la fecha ya no es posible este ataque y la FISI puede estar un poquito mas segura :)

Luego subiré un vídeo, hasta pronto.

Saludos.

Actualización

Ya pueden ver el vídeo en:

http://alguienenlafisi.blogspot.com/2010/11/hackeando-la-web-de-la-fisi-video.html

2 comentarios:

  1. Muy bien explicado

    Felicitaciones

    Dino

    ResponderEliminar
  2. Gracias Dino... Un gusto tenerte por aquí :)

    Un saludo.

    ResponderEliminar