           __          __          __          __   
         |  |_.---.-.|  |_.---.-.|  |_.---.-.|  |_.---.-.-----.
         |   _|  _  ||   _|  _  ||   _|  _  ||   _|  _  |     |
         |____|___._||____|___._||____|___._||____|___._|__|__|
             
                Errores comunes en aplicaciones en Web
                por -tatatatan

--------------------------------------------------------------------
El contenido en este documento es veridico, pero los nombres de los
sitios afectados fueron cambiados por razones obvias.
--------------------------------------------------------------------

El tener contratos con una fecha limite para entregar algun proyecto,
la falta de conocimiento o algun descuido son algunas de las posibles
causas del desarrollo de software con errores de seguridad.

La mayoria de estos errores se deben a la falta de validacion de datos,
a no usar sesiones o al uso de la seguridad por obscuridad (security
by obscurity).

En el transcurso de este texto analizaremos tres sitios con diferentes
vulnerabilidades, dos con fallas de falta de validacion y otro que tenia
fallas debido a no utilizar sessiones.

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Sitio #1
nombre: contatatatan.com

fallas: falta de validacion

Descripcion del sitio:
contatatatan.com es un sitio que permite a pequeas empresas o indivi-
duos el llevar su contabilidad en linea (todo esto sin algun costo),
contatatatan.com genera reportes de gastos, ingresos, etc.

Descripcion del Error:
Al registrar una cuenta con un nombre de usuario ya existente, se eli-
minan los datos y el registro de la cuenta original.

Al tratar de hacer esto se despliega lo siguiente:

///////////////////////////////////INICIO DE PAGINA HTML

Verificacion de usuario (Nuevo)
Imposible continuar, el Usuario <usuario> ya existe
Nombre:juanito
Sexo:Masculino
<otras variables>
---------------------------------------------------------------
Terminos y condiciones
Por favor lea los terminos y condiciones generales bla bla bla.
---------------------------------------------------------------
   ____________________      ________
  | Acepto los terminos|    | editar |
   --------------------      --------

///////////////////////////////////FINAL DE PAGINA HTML

La seguridad que aplicaron los programadores de contatatatan.com fue
ponerle al boton de "Acepto los terminos" la opcion disabled. Solo
necesitas el codigo html de la pagina, quitar del tag <input> la opcion
DISABLED,o en su defecto usar netscape 4.78 o inferior (probado solo en
linux) e ignorara total y vilmente el atributo DISABLED.

El registro continua y se borran los datos de la cuenta que antes existia.

FIN SITIO #1
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
SITIO #2

Nombre: wevulnerable.com

fallas:no validar,permisos de lectura de passwd para el servidor web

Descripcion:
El sitio wevulnerable.com es un sitio que usa scripts de PHP para
desplegar diferentes secciones del mismo; veamos un link interno
http://www.wevulnerable.com/index.php?contenido=Paginas/hacking.php
|__________________________||________||____________________________|
            |                    |                  |
           FQDN               pagina       variable contenido

Podemos observar que posiblemente la variable contenido sea la ruta
a la pagina a desplegar. Ahora, que pasara si en lugar de el valor
contenido=Paginas/hacking.php ponemos contenido=/etc/passwd,
santos remolinos  batman tenemos una lista de passwords de un proovedor
de hosting que no usa passwords con shadow, que hostea paginas de gente
que no valida las variables de sus scripts.

FIN CASO #2

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
SITIO #3

Nombre: portaltatatan.com

fallas: ejecucion de javascript, robo de passwords, acceso a cuentas
ajenas en su servicio de webmail.

Portaltatatan es una compaia que ofrece servicios de Webmail, Foros,
Noticias, etc para facilitar el desarrollo de pequeos portales.

Descripcion:

falla #1
Su servicio de webmail es vulnerable a ejecucion de javascript por
medio de metodos antes descubiertos en hotmail ej:
<IMG SRC="j&#x41;vascript:alert('javascript es ejecutado')">


falla #2
A falta de uso de sesiones puedes usar el URL que aparece cuando entras a
tu cuenta, para entrar las veces que sea.

http://webmail.portaltatatan.com/mail/main?domain=portaltatatan.com&userid=
usuario&plain=1&s=%F9%F8%A6%A9%BE%E8%E2%FE%F2%89%9C%F7%F2%89%B3%89%AF%AB%
BE%FD%E7%95%B1%A0%E1%93%98%E7%B4%FB%A7%A5%A8%A5%FD%A4%95%A3%B8%BE%AC%E2%E
3%A7%97%A1%84%8D%E1%88%9E%83%B2%A1%9E%85%9D%FA%B9%E2%FC%FE%9B%97%88%E6%8A
%EA%98%A2%BD%F3%FA%E7&si=231&n1=3323030631&n2=3146532&n3=34138&n4=343&n5
=365236&n6=355438&

Si logras robar esa direccion entras directamente a la cuenta afectada,
ahora junta la falla #1 con la falla #2 y podrias obtener acceso facilmente

falla #3
En el caso de entrar a alguna cuenta con la falla #2 puedes ir a la
seccion de preferencias y accesar a "cambiar password" y automaticamente
te da la password (la cual podria servirte en el reciclaje de passwords).

falla #4
La password en texto simple se puede obtener leyendola directamente de la
variable de javascript SDP, juntarla con la falla #1 puede ser aun peor.

prueba de concepto de falla #1 y #4 juntas:

<IMG SRC="j&#x41;vascript:alert('Tu password es' + top.opener.window.top.SDP
)">

FIN SITIO #3
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Conclusion:
Si bien ya vimos cuales son algunos de los errores mas comunes en la
programacion en web lo importante es detectarlos antes de sacarlos a
produccion para evitar cualquier tipo de incidentes, los cuales bien
te pueden causar desde un dolor de cabeza hasta un despido.

Espera los siguientes articulos de tatatatan:
Errores de programacion en web con Perl y PHP 
Validacion con Perl y PHP

tatatatan
tatatatan2001@yahoo.com
greets RazA-MeXicAnA, el viejo 80's, Floydman, Incoloro, U-571 y al viejo
samana geek.

