Ejecución del código LFI cuando se especifica el directorio

1

Estoy trabajando en hackme, que introduce LFI en código php.

<?php
if (isset($_COOKIE["user"])) {
    $file="txt/".$_COOKIE["user"];
    include $file;
}
?>

Por lo tanto, puedo incluir cualquier archivo del sistema simplemente configurando el usuario de la cookie en la ubicación del archivo, por ejemplo: "../../../etc/passwd".

¿Hay alguna forma de utilizar esta vulnerabilidad para ejecutar mi propio código php?

He intentado usar:

  • / proc / self / environ
  • / proc / self / fd / 0
  • / proc / self / fd / 1
  • / proc / self / fd / ...

ninguno estaba funcionando (sin resultados) y los errores fueron similares a este:

  

include (txt /../../../ proc / self / fd / 2): no se pudo abrir la secuencia: Permiso denegado

    
pregunta user156041 04.08.2017 - 15:14
fuente

1 respuesta

1

Bueno, puede haber muchas maneras de hacer algo como esto. Estoy de acuerdo con los comentarios con respecto a hacer una investigación sobre lo que está haciendo exactamente un LFI, y analizar un poco las RFI para ayudar a entender las diferencias implícitas.

En cuanto a su pregunta, la respuesta sería sí, pero estrictamente teórica ya que no tenemos interacción directa con la aplicación, por lo tanto, no sé si la aplicación es vulnerable a otros vectores que pueden entra en juego.

Sin darte la respuesta, ya que estos tipos de aplicaciones vulnerables son para aprender por tu cuenta, hay varias formas de ejecutar PHP a través de LFI, la mayoría de las cuales involucra cargar un archivo de alguna manera, pero no siempre es así. Algunos ejemplos: a través de algún tipo de comentarios almacenados, accediendo a la página a través de LFI y ejecutando el código; a través de la carga a través de algún tipo de funcionalidad de carga de archivos y el acceso al shell que cargó a través del LFI; a través de convertir su LFI en una RFI (¿lo ha intentado?); a través de escapar del comando que está causando la lectura del archivo (su punto de inyección) y ejecutar PHP después de él, y una gran cantidad de otros potenciales.

Dado que usted controla la cookie y se refleja directamente en el PHP, ¿simplemente ha intentado cerrar de manera limpia la declaración en la que se descargó la cookie y escribir más PHP después? Esto sería lo primero que intentaría cuando un valor se refleje, sin modificar, en el código en uso en el servidor.

Esperemos que esto pueda ser una respuesta 'suficiente'. Este tipo de preguntas son un poco subjetivas, pero esto puede ayudar.

    
respondido por el plast1K 04.08.2017 - 21:21
fuente

Lea otras preguntas en las etiquetas