¿LFI? También un auto gratis.

Iniciado por Nobody, Febrero 17, 2017, 03:54:09 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

No es costumbre mía publicar historias, pero hoy salió mi Chema Alonso del interior y me decidí por publicar una.

Para darle apertura, creo que lo más correcto sería ponerlos en situación, así poder entender la historia en su totalidad.
Todo comenzó utilizando nuestro confiable Google, y si se pronuncia esa palabra en un foro de seguridad informática podríamos decir que casi siempre se refiere a Google Dorking. ¿Quién no ha utilizado Google para conseguir una página web vulnerable en forma de PoC? Espero sacarme algo responsabilidad diciendo eso.

Continuando con la historia, mi meta era lograr subir una shell a una página web tan solo aprovechándome de la vulnerabilidad No tienes permitido ver los links. Registrarse o Entrar a mi cuenta —de ahora en más, LFI—.
Posiblemente alguno ahora esté pensando en que esta publicación no tendría sentido, si todos conocemos de que trata LFI y sabemos implementarlo, ¿qué sentido tendría relatar una historia sobre un proceso que posiblemente conozcamos? La respuesta es relativamente simple. Mi intención no era obtener nada de esto —aunque un auto gratis no estaría mal—, simplemente hacer un promedio de cuantas páginas realmente son afectadas por este tipo de vulnerabilidad.

Para el que se lo esté preguntando, la página es de un concesionario de vehículos, algo tan simple con acceder a la base de datos y cambiar los precios de los vehículos, ¿no? —aunque todos sepamos que el precio que aparece nunca es el precio que usan—.

Una vez encontrada la página perfecta para intentar lograr mi cometido, era cuestión de aprovechar el LFI y un poco de Path Traversal para obtener información. Como no se trataba de algún CMS conocido, mi primera reacción fue intentar obtener el contenido del archivo index, para darme una idea de lo que tenía en frente.
Podría decir —y sin la necesidad de mostrarlo con una foto— que ese archivo aportó información valiosa y tal vez engañosa. Lo primero que noté fue una ruta hacia un archivo llamado "conn.php" dentro de la carpeta "Connections", creo que es evidente lo que tenía frente a mis ojos.



Llegada la inmediata necesidad de descargar ese archivo y al fin poder visualizar la información SQL completa, no dude en verificar el host, rezando que sea remoto y así poder hacer una conexión por consola desde mi PC, aunque no podía tener tan buena suerte. Mi último grano de esperanza era que la página contara con algún servicio de administración de base de datos —llámese phpMyAdmin—, y así fue.

Estando ya conectado, pude ver dos bases de datos. Revisando en orden, la primera se trataba de una base de datos completamente personalizada, es decir, no se trataba de ningún CMS o algo similar. Si, contenía tablas que hacían referencia a administradores y usuarios. Ese era el momento, conseguir el panel administrativo, subir shell y dar por terminado mi trabajo; Nuevamente, nada es tan fácil. Teniendo un archivo robots.txt vacío, lo mejor que me quedaba era probar nombres de directorios frecuentes, aunque nuevamente mi suerte era poca.

Pasado ya una unos minutos —muy largos—, podría decir que mi trabajo se había frustrado y lo mejor era abandonar, si... estando tan cerca, pero abandonar no era una opción. En ese momento un rayo de sol me iluminó —en una noche oscura, luego de una lluvia intensa—. ¡Eureka! Recordé que aún había otra base de datos por revisar, y para mi suerte era nada más y nada menos que una base de datos WordPress. Teniendo la posibilidad de editar la contraseña del administrador, loguearme y subir shell desde el propio panel administrativo de WordPress, creo que era un pecado no tentarse.



¡STOP! Los problemas seguían, todavía faltaba encontrar la ruta del blog, aunque no debería ser muy difícil, ¿no?
Si, imagínense, en la página no había ningún enlace que apuntase hacia una aparente instalación de WordPress. Esto ya me estaba frustrando, recuerdo haber bajado el archivo ".htaccess", sin resultados sobre una dirección del blog —y si, tampoco me falto ganas de mirar si existía un directorio admin—. En ese momento recordé que en otra pestaña tenía a mi amigo Google esperandome, un dork sencillito debería revelar la instalación de WordPress.

Sin más esperas, recurrí a un dork tan sencillo que ni merece la pena mencionar, aunque de no hacerlo, la historia no estaría completa.



¡Eso es, la instalación... pero no! Al parecer hoy el mundo estaba en contra mío, esa instalación no estaba correctamente configurada y por ende no servía.
Sin perder muchas esperanzas, supuse que si Google ayudó una vez, tal vez pueda ayudar otra. Sacando del cajón de antigüedades otro dork, no dude ni por un segundo en probarlo, sabiendo muy dentro mío que si no resultaba mis posibilidades de lograr mi meta eran casi nulas.



Con los dedos cruzados, entré al tercer resultado, todo apuntaba a que era realmente una instalación de WordPress, y para mi suerte lo era.
En ese momento se me cruzó por la cabeza el pensamiento oscuro de "es el fin, lo logré", cuando ni había comenzado. En una pestaña, el panel de ingreso administrativo, en otra, phpMyAdmin. Solo era cuestión de segundos, anotarse la contraseña real en un bloc de notas, modificarla por la que más me gustase y listo, obtenía acceso completo.



Para no aburrir a nadie más, voy a simplemente obviar la explicación de como subir una shell mediante el panel administrativo de WordPress, esa información se obtiene en cuestión de segundos con un buscador —el buscador de Underc0de no está nada mal, hee hee!—.

Ya con la shell en el servidor y el servidor en mi poder, era solo cuestión de un par de clics para arruinar completamente la concesionaria y alojar contenido ilegal, posteriormente claro, hacer una denuncia. Para suerte de ellos —y posiblemente también mía—, no estaba en mis planes del 2017 ser maligno, así que simplemente me limité a intentar reportar mis descubrimientos al administrador del sitio. Reportar un error a un administrador no es de mis tareas favoritas, ya que la mayoría nunca responden, y los que responden lo hacen diciendo "gracias, lo solucionaremos a la brevedad" o te acusan de infringir la ley —en realidad tienen razón— y, por si fuera poco, decirte que tu intensión era causar el mal.

Tragándome mis sentimientos y experiencias pasadas, recordé que ese blog tenía un sistema de chat para ventas. Un representante podía perfectamente decirme con quien debía hablar para reportar este tipo de errores —ignorando completamente el correo que figura en whois y el correo de la cuenta administrador del blog—.

Para mi mala suerte —o tal vez buena suerte—, lo que pasó fue lo siguiente:



Era de esperarse, ¿a quién se le ocurre reportar una vulnerabilidad a horarios de la madrugada? Aunque mi conciencia está limpia, tuve el interés en reportar.
En algún futuro cercano posiblemente reporte el error, aunque de seguro no les importará y siga todo igual.

Saludos,
Nobody.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

muy bonita historia, gracias por compartirla.

Y fueron felices por siempre :P

Saludos,