Saber la versión de PHP y el software de otro servidor

GuíasLinuxPHPProgramacionSistemas

Ya sea por obtener información o para realizar pruebas, es posible saber la versión de PHP y el software que utiliza un servidor remoto. Esta información se suele utilizar también con fines estadísticos.

Existen varios modos de descubrir la versión de PHP de un servidor remoto desde cualquier sistema operativo Unix/Linux. Vamos a ver dos métodos muy sencillos.

Usando el comando curl

[usuario@server /]# curl -I http://ejemplo.com

Mediante este comando obtenemos datos como:

HTTP/1.1 200 OK
Date: Thu, 17 Sep 2015 20:15:42 GMT
Server: Apache/2.0.65 (Debian) PHP/5.1.3-1+b1 mod_ssl/2.0.55 OpenSSL/0.9.8b
Content-Type: text/html; charset=UTF-8
Content-Length: 1051
X-Powered-By: PHP/5.2.42
Connection: close
Last-Modified: Fri, 12 Jun 2015 19:02:24 GMT
Connection closed by foreign host.

Como veis, tanto el tipo de servidor utilizado como la versión de Apache y otros datos importantes están expuestos al público. Vamos a ver ahora el otro método.

Usando una petición HEAD

Basta con escribir el siguiente comando:

[usuario@server /]# HEAD http://ejemplo.com

Y estos son los resultados:

200 OK
Cache-Control: no-store, no-cache, must-revalidate
Connection: close
Date: Wed, 13 Mar 2019 16:05:08 GMT
Pragma: no-cache
Server: nginx
Content-Type: text/html; charset=utf-8
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Client-Date: Wed, 13 Mar 2019 16:05:08 GMT
Client-Peer: 91.121.89.171:80
Client-Response-Num: 1
Set-Cookie: PHPSESSID=65850d8caa60d2f6569f046c32bba4bd; path=/
X-Powered-By: PHP/5.1.3

Vemos que además de usar PHP, también se utiliza el servidor nginx para archivos estáticos.

Usando Telnet

Podemos utilizar una sencilla conexión Telnet en el puerto 80 de otro servidor y luego, hacer una petición para obtener contenido, que puede ser por ejemplo «HEAD / HTTP/1.0» o cualquier otra (tendremos que introducirla cuando se nos pida).

[usuario@server /]# telnet ejemplo.com 80
Connected to servidor_remoto.com.
Escape character is '^]'.
[usuario@server /] HEAD /index.php

Seguidamente nos aparecerá la información del servidor que estamos buscando.

Resultados

Como veis, tanto el tipo de servidor utilizado como la versión de Apache y otros datos importantes están expuestos al público. En este último caso el servidor está utilizando la versión 2.0.65 de Apache y la versión 5.2.42 de PHP. Esto podría hacer que algunas personas con malas intenciones sepan la versión de PHP que estamos usando en nuestro servidor, pudiendo atacar ciertas vulnerabilidades de la versión que estamos utilizando.

Existen dos prácticas con respecto a la visibilidad de los datos. Por una parte algunos piensan que es mejor que los datos sean visibles para no crear una falsa sensación de seguridad, cuando en realidad podría existir un problema. La otra opinión es que es mejor ocultar los datos relativos al software que utilizamos en el servidor para agregar una capa adicional de seguridad a través de la ocultación de los datos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *