¿Son posibles los ataques LFI (eliminando la extensión) en PHP 5.4.4+?

4

¿Se pregunta si todavía existía un posible vector de ataque para los ataques LFI que eliminan la extensión del archivo? Obviamente, el byte nulo se corrigió en las versiones anteriores de PHP y ya no funciona, junto con el truncamiento de archivos.

Para aclarar, ¿existe un método para leer /etc/passwd con este código en PHP 5.4.4+ asumiendo la configuración del lado del servidor en el peor de los casos?

include( $_GET['page'] . '.php' );
    
pregunta Peleus 22.06.2014 - 10:40
fuente

1 respuesta

6

No creo que esto le permita a alguien incluir directamente /etc/passwd , pero todavía hay muchos problemas por resolver. Un atacante podría:

  • Active un DoS incluyendo el archivo en sí. (Ya que está usando include, no include_once, continuará incluyendo el mismo archivo de forma recursiva).
  • Incluya scripts arbitrarios en su sistema, como copias de phpinfo, filtraciones de información confidencial.
  • Incluya código arbitrario si pueden cargar archivos con extensiones definidas por el usuario.

Tenga en cuenta que si tiene allow_url_include = 1 en su php.ini, se está abriendo para una vulnerabilidad de inclusión de archivos remota .

Un mejor enfoque es incluir en una lista blanca las páginas, o al menos usar algo como basename() o realpath() + dirname() para evitar ataques de cruce de directorios.

    
respondido por el David 23.06.2014 - 03:37
fuente

Lea otras preguntas en las etiquetas