Carga arbitraria de archivos, sirve JPG como PHP

2

Estoy probando exploits antiguos y aleatorios de WordPress en mi servidor local, actualmente estoy en el proceso tratando de hacer que éste funcione:

enlace

No lee ningún encabezado, parece que filtra las extensiones de archivo. Puedo subir archivos {nombre de archivo} .php.jpg como se menciona en la URL especificada anteriormente. Pero lo que captó mi curiosidad fue;

Plugin does not properly filter filetypes, which allows for the upload of filetypes in the following format: 
filename.php.jpg
Vulnerable hosts will serve such files as a php file, allowing for malicious files to be uploaded and executed.

Al abrir el archivo JPG solo se produce un error en mi navegador, ya que no se ve como una imagen válida.

Lo que me lleva a mi pregunta

¿Por qué un servidor serviría un JPG como PHP? (¿Sin editar .htaccess o php require ())?

    
pregunta Stella 06.06.2015 - 13:06
fuente

1 respuesta

1

Este comportamiento no está directamente vinculado a esta vulnerabilidad, sino a una configuración de servidor web débil.

Por ejemplo:

  • Apache ofrece a través de mod_mime la posibilidad de servir archivos con extensión múltiple . Esta extensión está diseñada para servir de la misma manera que los archivos como welcome.html.fr o welcome.fr.html (es decir, la versión francesa del archivo welcome.html ). Sin embargo, se puede engañar para interpretar myuploadedfile.php.jpg como un script PHP ...
  • Nginx ofrece un sistema de directorio virtual que permite tener subdirectorios virtuales debajo de un script dinámico. Por ejemplo, una URL como /agenda.php/2015/june/6 ejecutará el archivo agenda.php (SCRIPT_FILENAME) con /2015/june/6 como parámetro (PATH_INFO). Sin embargo, puede engañarlo para que ejecute su archivo cargado (que ni siquiera necesita incluir la extensión .php ) usando una URL como /myuploadedfile.jpg/anything.php : se aceptará como un script PHP debido a la extensión .php , luego la URL se dividirá en SCRIPT_FILENAME y PATH_INFO como se describe anteriormente, y finalmente se le dará al interpretador de PHP el orden para ejecutar el contenido de myuploadedfile.jpg .
respondido por el WhiteWinterWolf 06.06.2015 - 13:56
fuente

Lea otras preguntas en las etiquetas