domingo, 5 de marzo de 2023

Cuadernos de campo: Remote Source Disclosure en PHP <= 7.4.21

 

Hace un mes salió publicado el siguiente post: 

https://blog.projectdiscovery.io/php-http-server-source-disclosure

En el cual se explica un fallo de seguridad encontrado en versiones de PHP anteriores a la 7.4.22, por el cual se puede leer el código fuente de un archivo PHP simplemente modificando las cabeceras HTTP de la petición hecha a dicho archivo.

Para comprobar la veracidad de lo comentado en el post, se realiza un par de PoCs sobre un entorno “vulnerable”

 

Versión vulnerable

Tras comprobar la versión de PHP instalado, se preparan las dos simples páginas PHP que se van a utilizar en la PoC. Están son:

 

 Primera página creada en PHP, o “patado.php”

 

Segunda página creada en PHP, o “patatos.php”

 

Ahora es el momento de montar el entorno web para la primera PoC

 


Si lanzamos una petición web al entorno montado, obtenemos la ejecución del archivo PHP:

 

Ejecución de la página PHP: patato.php

 

Pero si lanzamos la petición modificada tal y como comenta el post, obtenemos el código fuente de dicha página:

 


 

¡La primera PoC funciona!

¡Se habrá tenido suerte!, lancemos la segunda PoC

 

Se monta el entorno web para la segunda PoC

 

Lanzamos una petición web al entorno montado, obteniendo la ejecución del archivo PHP:

 

Ejecución de la página PHP: patatos.php

 

Y si lanzamos la petición modificada tal y como comenta el post, obtenemos … ¡el código!:

 



 

Parece que funciona, ahora sólo tenemos que saber aprovecharlo para …

 

En cualquier caso.

Lo que hagas con la información es cosa tuya, no mía... pero ten conciencia