sábado, 14 de enero de 2017

Baja seguridad en portales [Full Source Disclosure]

Estimados lectores, les doy la bienvenida a un nuevo post, la primera cosa que comentaré es sobre la inactividad del blog, he tenido poco tiempo para escribir, he estado un poco ocupado y el poco rato libre que tenia lo usaba para leer documentos o descansar, una vez dicho esto pasaremos a la explicación de la vulnerabilidad.
En primer lugar, la vulnerabilidad que explicaré hoy, sera sobre una fuga de datos sensibles que podrian conllevar al control total de la página web.
Primero de todo expondré donde erradica la vulnerabilidad, la cual es debida a una mala configuración del codigo fuente de la página. El código fuente seria de este tipo



Bien, este código lo que hace es que sea posible descargar cualquier fichero por medio de la variable 'd', así que podemos hacer uso del ataque Directory Trasversal para poder movernos entre los directorios y así poder llegar a al archivo objetivo.
A cotinuación, intentaremos conseguir el fichero /etc/passwd 
Una vez hecho esto, no pude hacer nada al no poder llegar a obtener el archivo shadow, para poder llevar acabo el crackeo de las contraseñas. Así que accedí al panel de administrador a curiosear, si se podria llevar acabo un SQL bypass en el login, cosa que dió fallo rotundo, entonces tube la idea de capturar cabeceras a ver que podia sacar de provecho de ellas y bingo!
 


La página auntetificaba las credenciales del usuario admin mediante un fichero llamado autentificar.php, entonces vamos a echarle un vistazo al source de esa autentificación con nuestra vulnerabilidad FSD para ver como trabaja

Una vez leído el código nos damos cuenta de que autentifica las credenciales comparandolas con una base de datos MySQL, así que bueno vamos a echar un vistazo a ver si podemos conseguir algo más de información sobre el logueo, principalmente me llaman la atención esas 3 líneas del include en el source. Procedemos a descargarlas a ver que contienen.
Bueno, una vez visto por encima los 3 ficheros, me he dado cuenta que en los ficheros "funciones.php" y "menu_principal.php" no contienen nada que nos pueda ser útil, pero en cambio en el fichero "query.php" nos encontramos con esto :).


La query la cuál autentifica la conexión en seco y arriba la importación del código "conexion.php", tiene buena pinta vamos a ver que podemos encontrarnos dentro de ese archivo.



De esta manera se puede llegar a conseguir las credenciales de la DataBase, acceder a la base de datos y extraer las credenciales del administrador de la página web, ya que como vemos se autentifica en base la DB.
Una vez hecho esto, reporté la vulnerabilidad a la web que es un portal de una comunidad autónoma española, eso fue quizás hace 2 semanas a día de hoy sigue sin ser parcheada.
Finalmente, gracias por haber leído y espero poder seguir teniendo un poquito de tiempo para postear las cositas que voy haciendo.

Saludos meteor :)