Forzando encabezados de respuesta

1

Estoy probando un cuadro de vulnerabilidad en particular desde ayer y tuve un problema bastante extraño que no esperaba. Digamos que una aplicación web vulnerable ofrece carga de archivos de imagen.

La imagen en realidad no tiene que ser imagen, el back-end acepta cualquier extensión de archivo. El problema es que el mismo back-end siempre devuelve *.jpg , por lo que en lugar del script evil.php cargado, aparece random_number.jpg .

Por supuesto, lo primero que he intentado es obtener la respuesta servida, que en este caso son datos de imagen codificados en base64.

Mirando más lejos, he encontrado que la aplicación devuelve binary/octet-stream como un encabezado de respuesta Tipo de contenido , lo que significa que cuando intento acceder a la URL http://localhost/vulnbox/uploaded/random_num.jpg , el navegador abre el mensaje de descarga de archivos. . El archivo real se devuelve como binario, listo para ser descargado, pero al mirar el archivo, veo que el código permanece.

¿Hay alguna manera de forzar la respuesta de Content-type a cualquier otra y hacer que se ejecute el script malvado real?

    
pregunta sensation 16.01.2016 - 01:19
fuente

1 respuesta

2

Supongo que quieres saber si hay una manera de ejecutar el archivo PHP cargado. Respuesta corta: No

Anwser largo: Mientras el servidor web esté configurado correctamente, solo los archivos .php se ejecutarán como PHP. La mayoría de los servidores web devolverán como tipo de contenido siempre el tipo mime derivado de la extensión de archivo. El contenido en sí de la respuesta HTTP suele ser el contenido del archivo. Por ejemplo, Apache2 le devolverá el tipo de contenido 'imagen / jpg' y el texto sin formato del archivo PHP.

    
respondido por el Thomas Hunziker 19.01.2016 - 12:46
fuente

Lea otras preguntas en las etiquetas