martes, 3 de enero de 2012

Fondo Editorial UNMSM - Hacked

Bueno, ahora que estoy de vacaciones y tengo algo de tiempo libre me he puesto a buscar más errores en los sistemas de la universidad y he encontrado algunas cosas interesantes.

Por lo pronto quiero contarles de un defacement que ha sufrido la web del "Fondo Editorial de la UNMSM" ¿Cómo? ¿No sabes que es el Fondo Editorial? Bueno la verdad yo tampoco lo conocía hasta ahora xD

Sucede que estaba yo metiendo comillas donde no me llaman (como siempre) y no tardó en saltar un clásico "Syntax Error" delatando que alguien no había hecho bien su trabajo. Por el mensaje deduje rápidamente que el SGDB era un SQL Server, aunque era de esperarse porque la web estaba en ASP sobre un IIS.

Luego de jugar un rato con la web me sorprendió y a la vez no, descubrir ya había sido vulnerada y owneada con anterioridad. Esta no es la primera vez que luego de encontrar un fallo descubro que ya antes alguien lo encontró y explotó, de echo suele ser lo más frecuente.

Prueba de su intrusión el "hacker" dejó un claro mensaje:

Fig. 1 - Deface del Fondo Editorial de la UNMSM.

En mi opinión un deface ofensivo y no muy creativo ¡Qué hay que tener gusto pa defacear también! ¡Y si no tienes tiempo pues a otra cosa! xD

En lo que si estoy de acuerdo es que dejarse un SQLi a estas alturas es una metida de cuatro patas.

Pero vamos a sacar algo bueno de todo esto y explicamos como es posible hacer un defacement explotando un SQLi, por si a alguien no le ha quedado claro como es que nuestro amigo "Jedi" logró tal hazaña.

Bién, cuando la inyección es en una base de datos SQL Server, es posible inyectar usando una técnica conocida como "Stacked Queries". Esto no es más que utilizar un punto y coma ";" para delimitar las instrucciones SQL y así poder inyectar ordenes completas como updates, deletes y hasta drops. Por ejemplo:

/vulnerable.asp?id=23 ; UPDATE Libros SET Titulo = 'Hacked ... xD'--

Vale mencionar que las stacked queries no son exclusivas de SQL Server, también se pueden utilizar con PostgreSQL, por ejemplo. En aplicaciones PHP con MySQL no suele funcionar por default.

Como ya imaginarás la idea para hacer el deface es ejecutar un update para reemplazar el contenido de la web por el mensajito que quieras poner. Sin embargo, como dije anteriormente, eso me parece poco creativo. Para algo más de efectos especiales podrías inyectar un código javascript que al interpretarse en el navegador modifique totalmente el aspecto de la web. Ya sabes el fondo negro, con las calaveras pirata y la música heavy... xD

Bueno y hasta aca llega este post...

Saludos.

7 comentarios:

  1. No se si acepten retos... pero... hace mucho tiempo que quiero checar precios de la web de http://www2.deltron.com.pe se supone que ellos te envian un usuario "provisional" para checar precios de sus productos por un par de semanas pero nunca me llego nada. busque en bugmenot.com un usuario valido de deltron (asi de desesperado estuve) pero nada. En el caso de que encuentren una vulnerabilidad para ver precios de productos o logearse, seria interesante (y util) para la gente que se gana unos cachuelos ensamblando compus y vendiendo repuestos. Si no se puede, no hay problema.

    ResponderEliminar
  2. Enhorabuena por el blog, me encantan todos tus articulos, he aprendido mucho de ellos, haber si tienes tiempo y haces uno de busqueda de xss con burp suite.

    saludos!

    ResponderEliminar
  3. han jodido la web, le ha llenado datos basura :S

    ResponderEliminar
  4. que deface tan poco creativo...inyectar un poco de codigo...Si va ha hacer un deface q lo haga completo o si no q no lo haga..xD

    ResponderEliminar
  5. Bueno, quien sabe desde cuando estará así esa web... en fin. Lo lamentable es que mientras no hay roche nadie hace nada por corregir los fallos. Hasta entonces tu base de datos ya estará en pastebin y tu web aumentará las estadísticas en zone-h

    Saludos.

    ResponderEliminar
  6. Hola esa idea de inyectar un código javascript seria en un campo de algun registro ? que se tiene q cumplir para q salga?

    ResponderEliminar
  7. Bueno, digamos que reemplazas el titulo de un libro por "<script>alert('xssed')</script>". Luego cuando se muestre ese libro en el navegador el codigo JS se ejecutará y mostrará el alert o cualquier otra cosa que haga el script.

    Usualmente se busca reemplazar contenido que aparece en la página principal de la web.

    Saludos.

    ResponderEliminar