¿Inclusión de archivos locales cuando la URL se anexa con .php?

4

Durante el pentesting, encontré un objetivo vulnerable a la inclusión de archivos locales:

include("$rootpath/includes/dir/".$_GET["section"].".php");

Cuando visito la URL http://target.com/img?section=images funciona perfectamente ya que images.php está presente en el directorio $rootpath/includes/dir/ . Cuando visito http://target.com/img?section=images.php no obtengo nada, lo que indica que el servidor no pudo encontrar ningún archivo images.php.php .

¿Hay alguna forma de omitir la restricción de adición .php ? Intenté http://target.com/img?section=images.php%00 pero el servidor web ahora está tratando de encontrar el archivo http://target.com/img?section=images.php%00.php . Quiero leer el archivo /etc/passwd .

    
pregunta Danish 29.04.2018 - 15:34
fuente

3 respuestas

0

Creo que% 00 en url no funciona. Debe utilizar algún software de modificación de paquetes como Burp Suite y editar la solicitud para que contenga el carácter terminador nulo real.

    
respondido por el Peter Harmann 29.04.2018 - 15:39
fuente
0

¿Ha intentado usar una herramienta que le permitirá controlar las solicitudes / respuestas al servidor, como Burp Suite, que Peter sugirió? De esta manera, puedes probar varios trucos, como interceptar solicitudes y respuestas, que pueden llevar a omitir el apéndice de php.

Y dado que su objetivo es ver si el servidor es vulnerable a la gestión de acceso a través de directorios o al acceso deficiente, simplemente puede probar una serie de ../ en la URL o en Burp Suite hasta que reciba mensajes de error que sugieran que está en el directamente o si tiene suerte, puede ganar el bote y la aplicación le permite descargar el archivo de contraseña, por ejemplo, http://target.com/img?section=images.php/../../../../etc/passwd

    
respondido por el geforceGTX480 26.09.2018 - 21:08
fuente
0

No conozco ninguna forma de evitar esa restricción, pero leer / etc / passwd es bastante aburrido de todos modos. ¿Existe una función de carga de archivos que posiblemente pueda utilizar para cargar un archivo .php en el servidor? Luego, puede utilizar este error de inclusión para ejecutar el código que ha cargado, incluso si no está dentro de webroot o es imposible acceder a él solo a través de una solicitud GET normal. Eso le da la ejecución de código arbitrario en el servidor, que es estrictamente más poderoso que el archivo local arbitrario.

    
respondido por el CBHacking 27.10.2018 - 07:44
fuente

Lea otras preguntas en las etiquetas