• Inicio
  • Tutoriales
  • Introducciones
  • Taller
  • Saber la versión de PHP y el software de otro servidor

    TutorialesLinuxPHPProgramacionSistemas

    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.


    Avatar de Edu Lazaro

    Edu Lázaro: Ingeniero técnico en informática, actualmente trabajo como desarrollador web y programador de videojuegos.

    👋 Hola! Soy Edu, me encanta crear cosas y he redactado esta guía. Si te ha resultado útil, el mayor favor que me podrías hacer es el de compatirla en Twitter 😊

    Si quieres conocer mis proyectos, sígueme en Twitter.

    Deja una respuesta

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