¿Vulnerabilidad de ejecución remota de código en el código base_64 de PHP?

0

Estoy intentando apropiarse de un script PHP.

Esta es la última línea del script que quiero explotar:

Header("Location: ".TOP_DIR."/".base64_decode($_GET['ref'])."&imgid=".$_GET['imgid']);

¿Es vulnerable a la ejecución remota de código? Si es así, quiero ejecutar la función system dentro de la función base64_decode :

system($_GET['cmd'])

¿Es posible?

    
pregunta I'm V 11.07.2016 - 05:23
fuente

2 respuestas

3

Nunca debes decir nunca, pero no hay razón para creer que podrías explotar esa línea para obtener RCE. La función base64_decode hace exactamente lo que su nombre implica: descodifica base64. Para obtener el valor del parámetro ejecutado, necesitaría una función que ejecute el código que se le proporciona, como eval . Parece que no tienes eso, así que estás fuera de suerte.

Dicho esto, parece que se podría hacer un recorrido transversal, ya que no hay verificación para los caracteres / . Sin embargo, no estoy seguro de cómo podría explotar eso en una respuesta de redireccionamiento. En versiones anteriores de PHP, también puede hacer una inyección de encabezado incluyendo una nueva línea, iniciando así un nuevo encabezado.

    
respondido por el Anders 11.07.2016 - 17:20
fuente
1

La función base64_decode() no es riesgosa por sí misma, pero sí lo es ejecutar código arbitrario en su sistema.

Tener una secuencia de comandos que llame a system($_GET['cmd']) es casi una invitación para que los piratas informáticos arruinen su servidor. Tan pronto como alguien capacitado lo encuentre, se divertirán a toda costa.

Si le preocupa la seguridad de alguna manera, nunca permitirá que sus usuarios decidan qué se ejecuta en su servidor.

    
respondido por el Julie Pelletier 11.07.2016 - 05:31
fuente

Lea otras preguntas en las etiquetas