Local File Inclusion (LFI)
Definición
LFI (Local File Inclusion) es una vulnerabilidad de seguridad que ocurre cuando una aplicación web permite a los usuarios incluir archivos en el servidor a través de parámetros de entrada sin una validación adecuada. Esto puede permitir a un atacante leer archivos sensibles, ejecutar scripts maliciosos o incluso tomar el control del servidor en ciertos casos.
LFI: Podemos CARGAR y EJECUTAR archivos locales en el contexto del usuario el cual está corriendo el servidor.
Impacto
Ejecución de código en el servidor web.
Ejecución de código en el cliente (como JavaScript), lo que puede causar ataques como XSS.
Denegación de servicio (DoS).
Divulgación de información confidencial.
LFI TO RCE via Log Poisoning
Esta técnica se centra en envenenar los logs con comandos para luego, al cargar dichos logs se interprete nuestro código y tengamos ejecución remota de comandos (RCE).
Rutas de logs:
Ejemplo en Linux:
Paso 1: Envenenar access.log
Paso 2: Ejecutar el código con curl
Paso 3: Reverse shell
Recomiendo utilizar: https://www.revshells.com/, de las mejores páginas para crear reverse shells.
LFI en Windows:
La explotación de LFI en Windows sólo difiere de Linux en lo que respecta a las rutas de los archivos y la ejecución del código. El fragmento de código PHP que utilizamos en esta sección para Linux también funciona en Windows, ya que utilizamos la función del sistema PHP que es independiente del sistema operativo subyacente. Cuando utilizamos Log Poisoning en Windows, debemos entender que los archivos de registro se encuentran en rutas específicas de la aplicación. Por ejemplo, en un objetivo que ejecuta XAMPP , los registros de Apache se pueden encontrar en C:\xampp\apache\logs\ .
LFI To RCE - Abusing /proc/self/fd/X + Log Poisoning
Video explicativo de Savitar: https://www.youtube.com/watch?v=4VnatIievBE&ab_channel=S4viOnLive%28BackupDirectosdeTwitch%29
Finding private keys
En algunas situaciones no tenemos el fichero id_rsa, por lo que debemos consultar el authorized_keys y ver qué tipo de clave es:
Revisar que tipo de claves hay, si muestra ecdsa no va a ser id_rsa, va a ser id_ecdsa:
Wrappers PHP
PHP Expect Wrapper
PHP Data Wrapper
En caso de que haya firewall y no te permita meter comandos raros.
PHP Filter Wrapper
PHP Zip Wapper
Zip Wrapper - S4vitar: https://www.youtube.com/watch?v=6IO3gAtP3dc&ab_channel=S4viOnLive%28BackupDirectosdeTwitch%29
PHP Phar Wrapper
Recursos
Última actualización