Path traversal & file inclusion

Path traversal

http://<target>/index.php?page=../../../<directory>/<file>
http://<target>/index.php?page=../../../etc/passwd
http://<target>/index.php?page=../../../windows/win.ini

Null byte

Omite la adición de caracteres al final de la cadena proporcionada.

http://<target>/index.php?page=../../../etc/passwd%00

Local File Inclusion (LFI)

Payloads

Linux/Unix

Windows

SecLists

Fuerza bruta

Wfuzz

  • -u = URL.

    • <target> = objetivo.

    • FUZZ = la palabra FUZZ será reemplazada con los valores de la wordlist.

  • -w = wordlist.

    • <path-wordlist-lfi> = ruta de wordlist Local File Inclusion (LFI).

  • --hw 0 = ocultar respuestas con 0 (cero) palabras.

  • -c = output con colores.

FFuF

  • -u = URL.

    • <target> = objetivo.

    • FUZZ = la palabra FUZZ será reemplazada con los valores de la wordlist.

  • -w = wordlist.

    • <path-wordlist> = ruta de wordlist.

PHP wrappers

Wrapper php://filter

Wrapper data://

Es posible utilizar este wrapper solo si la opción allow_url_include está habilitada en la configuración de PHP.

Local File Inclusion (LFI) a Remote Code Execution (RCE)

Wrapper expect://

Este wrapper está deshabilitado de forma predeterminada.

Wrapper input://

Es posible utilizar este wrapper solo si la opción allow_url_include está habilitada en la configuración de PHP.

Wrapper data://

Es posible utilizar este wrapper solo si la opción allow_url_include está habilitada en la configuración de PHP.

Ejemplo de web shell (base64).

Ejemplo de reverse shell (base64).

File upload

1) Wrapper zip://

Generación de archivo .zip con web shell.

Subir archivo webshell.zip al servidor web objetivo.

Es posible hacer referencia a los archivos dentro del archivo webshell.zip con el simbolo #.

2) Archivo de imagen.

Generación de archivo webshell.gif con web shell.

Subir archivo webshell.gif al servidor web objetivo y realizar su ejecución desde el Local File Inclusion (LFI) identificado.

3) Wrapper phar://

Generación de archivo .phar desde webshell.php y cambio de extensión a .jpg.

Subir archivo webshell.jpg al servidor web objetivo y realizar su ejecución desde el Local File Inclusion (LFI) identificado.

Log poisoning

Archivos de logs:

  • /var/log/apache2/access.log

  • /var/log/nginx/access.log

  • /var/log/sshd.log

  • /var/log/mail

  • /var/log/vsftpd.log

  • /proc/self/environ

Archivos de sesión de PHP

Rutas de almacenamiento de archivos de sesión de PHP:

  • /var/lib/php/sessions/

  • C:\Windows\Temp

Ejemplo para PHPSESSID con valor ujllfv2j2sm7ae11is401hvdf9.

Modificación de alguno de los valores almacenados en la sesión por:

Ejecución de comandos.

Remote File Inclusion (RFI)

Para incluir un archivo remoto en PHP, las opciones allow_url_fopen (habilitada de forma predeterminada) y allow_url_include deben estar activadas en la configuración.

Remote File Inclusion (RFI) a Remote Code Execution (RCE)

Creación de webshell.

HTTP

Habilitación de servidor HTTP para compartir el archivo webshell.php.

Ejecución de comandos.

FTP

Habilitación de servidor FTP para compartir el archivo webshell.php.

Ejecución de comandos.

SMB

Cuando la aplicación se ejecuta en Windows, las restricciones aplicadas por allow_url_include pueden omitirse mediante el uso del protocolo SMB. Esto se debe a que Windows trata los archivos de los servidores SMB remotos como archivos normales, a los que se puede hacer referencia directamente con una ruta UNC (Universal Naming Convention).

Habilitación de servidor SMB para compartir el archivo webshell.php.

Ejecución de comandos.

Metasploit

Última actualización

¿Te fue útil?