systemadmin.es > LAMP y web > Malas costumbres: Comentarios HTML con datos sensibles

Malas costumbres: Comentarios HTML con datos sensibles

Hace un tiempo un amigo me comentó que en una web del ayuntamiento de Barcelona tenían un print_r del array $_SERVER de PHP dentro de un comentario HTML.

Anteriormente ya hemos hablado de temas simulares, como los malos conceptos que muchas veces se tienen como SQL Injection es cosa de escapar comillas o de las varias cutrerias que se ven por el mundo.

Para este caso concreto, dentro del comentario HTML se encontraba lo siguiente (modificando de quien con datos inventados para que no me toquen las narices):

<!--<pre>Array
(
   [SCRIPT_URL] => /localizaciones/localizaciones.php
   [SCRIPT_URI] => http://www.pating.com/localizaciones/localizaciones.php
   [HTTP_HOST] => www.pating.com
   [HTTP_CONNECTION] => keep-alive
   [HTTP_USER_AGENT] => Mozilla/5.0 (X11; U; Linux i686; en-US)
AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.9 Safari/533.2
   [HTTP_ACCEPT] =>
application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
   [HTTP_ACCEPT_ENCODING] => gzip,deflate,sdch
   [HTTP_ACCEPT_LANGUAGE] => en-US,ca;q=0.8,en;q=0.6,es;q=0.4
   [HTTP_ACCEPT_CHARSET] => ISO-8859-1,utf-8;q=0.7,*;q=0.3
   [HTTP_COOKIE] => PHPSESSID=56cfa29ab9f4914dcce1afff4b2d2e34;
__utmz=201942018.1273414593.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none);
__utma=201942018.223113871.1273414593.1273414593.1273414593.1;
__utmc=201942018; __utmb=201942018.3.10.1273414593
   [PATH] => C:\Program Files\Support
Tools\;d:\pfwecm-5.1.4\ecm\utils\bin;d:\pfwecm-5.1.4\jdk1.5.0_01\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;d:\pfwecm-5.1.4\php;C:\Program
Files\MySQL\MySQL Server
5.0\bin;D:\pfwecm-5.1.4\apache\bin;C:\PROGRA~1\CA\SHARED~1\SCANEN~1
   [SystemRoot] => C:\WINDOWS
   [COMSPEC] => C:\WINDOWS\system32\cmd.exe
   [PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
   [WINDIR] => C:\WINDOWS
   [SERVER_SIGNATURE] =>
   [SERVER_SOFTWARE] => Apache
   [SERVER_NAME] => www.pating.com
   [SERVER_ADDR] => 1.2.3.4
   [SERVER_PORT] => 80
   [REMOTE_ADDR] => 5.6.7.8
   [DOCUMENT_ROOT] => D:/pfwecm-5.1.4/channels/pating-prod/delivery
   [SERVER_ADMIN] => errorpating@empresa-externa.com
   [SCRIPT_FILENAME] =>
D:/pfwecm-5.1.4/channels/pating-prod/delivery/localizaciones/localizaciones.php
   [REMOTE_PORT] => 21991
   [GATEWAY_INTERFACE] => CGI/1.1
   [SERVER_PROTOCOL] => HTTP/1.1
   [REQUEST_METHOD] => GET
   [QUERY_STRING] => TU5fTE9DQUxJWkFDSU9ORVM%3D&MQ%3D%3D
   [REQUEST_URI] =>
/localizaciones/localizaciones.php?TU5fTE9DQUxJWkFDSU9ORVM%3D&MQ%3D%3D
   [SCRIPT_NAME] => /localizaciones/localizaciones.php
   [PHP_SELF] => /localizaciones/localizaciones.php
   [REQUEST_TIME] => 1273414564
   [argv] Array
       (
           [0] => TU5fTE9DQUxJWkFDSU9ORVM%3D&MQ%3D%3D
       )

   [argc] => 1
)
</pre>-->

A juzgar por el pre delante y detrás el programador que lo hizo lo usaba para el desarrollo de la aplicación.

Aúnque esto no es una vulnerabilidad directa, sirve para sacar muchos datos sobre la aplicación y el entorno dónde esta instalada, por ejemplo:

  • Se trata de un Windows, instalado en C:\WINDOWS
  • Conocemos el valor de la variable PATH:
    C:\Program Files\Support Tools\;d:\pfwecm-5.1.4\ecm\utils\bin;d:\pfwecm-5.1.4\jdk1.5.0_01\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;d:\pfwecm-5.1.4\php;C:\Program Files\MySQL\MySQL Server 5.0\bin;D:\pfwecm-5.1.4\apache\bin;C:\PROGRA~1\CA\SHARED~1\SCANEN~1
    
  • Conocemos el nombre de la aplicación: pfwecm, su versión: pfwecm-5.1.4 y su directorio de instalación:
    d:\pfwecm-5.1.4\ecm\utils\bin

    y el DocumentRoot:

    D:/pfwecm-5.1.4/channels/pating-prod/delivery
  • Tiene instalado Java, y conocemos la versión y su path:
    d:\pfwecm-5.1.4\jdk1.5.0_01\bin
  • El servidor web es un Apache (instalado en D:\pfwecm-5.1.4\apache\bin), que podemos sacar tanto del print_r como de los headers:
    # curl -I pating.com
    HTTP/1.1 200 OK
    Date: Tue, 25 May 2010 07:25:06 GMT
    Server: Apache
    X-Powered-By: PHP/5.1.4
    
  • Por los headers podemos sacar la versión del PHP: 5.1.4
  • El backend es un MySQL y sabemos también la versión y path de instalación:
    C:\Program Files\MySQL\MySQL Server 5.0\bin
  • Conocemos el nombre de la empresa externa por el SERVER_ADMIN: errorpating@empresa-externa.com

Evidentemente nada de todo esto te da acceso como administrador al sistema, vale, pero estos detalles pueden llegar a simplificar la explotación de alguna vulnerabilidad por lo que NO deberían estar presentes en la salida HTML del site.

Dicho tema fue comunicado por email y lo han corregido sin decir nada. Muy lógico ya que es política del ayuntamiento (y del Alcalde) decir que todo va correctamente aunque no sea así.

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>