Compruebe si hay vulnerabilidades en el sitio web que tiene un error con realpath PHP

0

Encontré un sitio web con un archivo download.php que puede obtener diferentes valores en el parámetro url (por ejemplo, www.example.com/download.php?url=value ). Cuando le doy a ../../ como un valor para url , me arroja el siguiente error en la página:

Warning: realpath() [function.realpath]: open_basedir restriction in
effect. File(/srv) is not within the allowed path(s): 
(.:/srv/www/example.com/:/tmp/:/usr/local/php526/lib/php/) 
in /srv/www/example.com/download.php on line 5

Busqué las vulnerabilidades de la función PHP realpath() en PHP 5.26 o inferior y encontré un artículo sobre el sistema de manejo de archivos de PHP y los ataques que utilizan este método.

Me gustaría acceder al directorio / etc / passwd / como un archivo para poder obtener más información. He intentado usar una URL que tiene más de 4096 bytes, pero no parece estar truncada y no sucede nada.

www.example.com/download.php?url=../../etc/passwd/././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././/./././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././.....<...>.php

curl --head website.com devuelve

HTTP/1.1 200 OK
Date: Mon, 30 Jul 2018 11:39:01 GMT
Server: Apache/2.2.23 (Unix) mod_ssl/2.2.23 OpenSSL/0.9.8h
Content-Type: text/html

¿Cómo podría explotar y omitir el sitio web utilizando LFI o Truncamiento de ruta? O ¿cuál es el mejor método para aprovechar este error?

    
pregunta Mark Frankli 30.07.2018 - 14:15
fuente

2 respuestas

1

El mensaje de error es bastante claro: el archivo (/ srv) no está dentro de la ruta permitida .
Entonces, no, no puede acceder al directorio / etc / passwd /.

La respuesta que mencionaste explícitamente

  

No hay listas blancas / negras, open_base_dir o cualquier configuración de acceso restringido

    
respondido por el Your Common Sense 01.08.2018 - 11:06
fuente
0

¿Está seguro de que se trata de una inclusión de archivos locales y no de una ruta de paso o de una vulnerabilidad de lectura arbitraria de archivos? LFI permite la ejecución de código que debería permitirle ejecutar comandos que no están sujetos a las restricciones de ruta de PHP.

Si se trata de una llamada de inclusión, es posible que pueda ejecutar un archivo cargado desde / tmp ya que esa ruta está permitida. Aunque necesitaría arreglar su carga útil, necesita subir 3 directorios, y solo está subiendo 2. De lo contrario, podría ser posible utilizar envoltorios como php: //.

Por lo general, se puede hacer una comprobación para ver si es LFI intentando leer el script download.php en sí. Un script que se incluye a sí mismo debería segfault o error. Sin embargo, si recibe una fuente PHP, entonces el archivo se lee en lugar de ejecutarse y no es LFI, sino una lectura transversal o arbitraria. En este caso, podría filtrar todo el código fuente de la aplicación y buscar otras vulnerabilidades.

    
respondido por el wireghoul 01.08.2018 - 14:29
fuente

Lea otras preguntas en las etiquetas