tutoriales · 3 min de lectura
LFI a RCE - Abusando de los wrappers Filter y Zip con Python
Cómo abusar de los wrappers php://filter y zip:// para pasar de un LFI “complicado” a RCE: extraer código fuente vía base64 y ejecutar mediante inclusión de un ZIP.
· Manuel López Pérez · tutoriales

En este post veremos como abusar de los wrappers php://filter y zip:// para conseguir RCE desde un LFI complicado de explotar con ayuda de python y burp-suite
Hay veces en las que el LFI se nos complica debido a una mejor programación de la pagina objetivo. Este ejemplo es de una maquina de HackTheBox al que me enfrenté hace unos días, no diré cual es esta maquina para evitar spoilers.
En este caso me encontré con un sitio que era vulnerable a LFI pero la inclusión se hacia mediante la función require_once de php y se agregaba la extensión .php al parámetro. Ademas no era vulnerable a la técnica que veíamos en el lfi-cheat-sheet de inyección de bytes null; esta era nuestro situación:
- El archivo debia ser un php valido
- No podia ver el contenido entre <? >
- Cualquier cosa que pudiera incluir seria ejecutada
Este portal tenia la función de recibir ‘tips’ o ‘notas’ de los usuarios. La única solución que se me ocurrió fue abusar del wrapper filter para obtener los .php del servidor y sacar así mas información. Mediante el comando:
curl http://ejemplo.com/?oper=php://filter/convert.base64-encode/resource=upload* Donde ‘upload’ era el nombre del php que usaba para las subidas de archivos.
Obteniamos en Base64 el script de php. Que en este caso podíamos delimitarlo con las cadenas ‘PD9’ y '


