Investigaciones

Acceso al código fuente en la Superintendencia de Valores

julio 17, 2012
El sitio web de la Superintendencia de Valores tenía dos vulnerabilidades críticas del tipo Source Code Disclosure, lo que nos permite obtener codigo fuente de scripts y Directory Traversal, que nos deja acceder a archivos de configuracion del servidor. Este bug podria provocar el robo de información sensible de usuarios/clientes, datos importantes del servidor o incluso tomar control […]

El sitio web de la Superintendencia de Valores tenía dos vulnerabilidades críticas del tipo Source Code Disclosure, lo que nos permite obtener codigo fuente de scripts y Directory Traversal, que nos deja acceder a archivos de configuracion del servidor.

Este bug podria provocar el robo de información sensible de usuarios/clientes, datos importantes del servidor o incluso tomar control sobre el servidor.

El sitio de la superintendencia de valores, http://www.svs.gob.cl, era vulnerable  a ataques de este tipo mediante el script “ver_archivo.php” ubicado en http://www.svs.gob.cl/sitio/mercados/ver_archivo.php, el cual mediante la variable $archivo podía ser utilizado para visualizar cualquier archivo dentro del servidor, incluso si está en otro directorio como /etc.

 

Analizando  el script – “ver_archivo.php”

Lo que nos indica:
1.- Si existe $archivo crea un nuevo objeto “mostrarArchivo”, lo pasa al metodo “getArchivo” y lo descarga ( clase: “require(‘../biblioteca/php/class_mostrarArchivo.php’);” ) .
2.- En caso contrario , redirige a “no_digitalizado2.php” .

Analizando el script – “../biblioteca/php/class_mostrarArchivo.php”

Nos centramos en el metodo getArchivo() de la clase :
1.-Ttoma el directorio del archivo a descargar.
2.- Setea los header de descarga.
3.- Fuerza el seteo de content-type
4.- Setea el mime y el attach del archivo ( por descarte sera pdf )
5.- Descarga archivo

En ningun momento se filtro el archivo a descargar, por lo tanto si ponemos la ruta relativa (retrocediendo con ../) de un cualquier archivo, debería abrirlo. En este caso, probamos con el archvo /etc/passwd:

 

La vulnerabilidad fue categorizada en Directory Traversal y Source Code Disclosure en Secureless:

– Directory Traversal: #2339

– Source Code Disclosure: #2340

El estado actual es fixed.

 

chiledirectory traversallfilocal file includepath traversal

Comparte este Artículo

Artículos relacionados