Con esto hay un pequeño problema:
Cuando guardamos a los usuarios de un site lo hacemos con cuidado de proteger su acceso, guardamos hashes de la contraseña para que si por ejemplo, nos cabe un injection, y listan la taba usuarios, no tengan a manos las passwords.
Pero hay algunos sites que tiene un problema a la hora de loguear con ajax.
Muchos sites muestran el cuadro de login, y una vez loguado el cuadro desaparece, otras es reemplazado por otro con la información del usuario, pero no siempre es el mismo, y hasta en ocuaciones son 2 divs diferentes adentro de un mismo contenedor para hacer algun efecto loco.
Aca viene el pequeño error, supongamos que el site tiene esto:
Usuario:
Contraseña:

En este caso la funcion loginAjax envia los datos al servidor y obtiene una respuesta, un XML con los datos.
Cual es el problema? Particularmente, este site como muchos otros,no eliminan el elemento div, lo ocultan, este en particular con un efecto de fade.
A este site (donde descubri el problema), le cabia un XSS (inyeccion de Javascript) en un lugar perdido, algo que de por si ya era un problema ya que se podian robar los cookies de credenciales y mantener las sessiones vivas y entrar con las credenciales robadas.
Pero en este caso, eso que acabo de decir era perder el tiempo, se podia hacer algo mejor y ensima mas facil... robo de usuarios y contraseñas... grave...muy grave.
Pensalo 5 minutos....
Si no caiste..... el elemento con id "pass" se oculta con el div "la caja de login" pero no es eliminado ni blanquado, tenemos la contraseña todo el tiempo en la pagina,basta con mandar como parametro a nuestro remitente del XSS document.getElementById("
Aunque se tienen que dar un par de casos, es algo que hay que tener en cuenta, ya que si se descubre un XSS no es taaan grabe, se eliminan los archvos de session del servidor previo apache restart, y con las sesiones muertas los usurios que capturaron las credenciales no pueden volver a entrar, pero en este caso, supongamos que el script dure 2 dias antes de ser detectado por algun admin/desarrollador, robando usuarios y contraseñas silenciosamente y ese periodo se louean 2000 personas infectadas... son 2.000 usuarios que tiene que cambiar SI o SI su contraseña y deforma totalmente inmediata, y por lo menos al toke hacer que no puedan ver sus datos hasta que alla una confirmacion de que realmente son los dueños de las cuentas.
Un lindo bardo.
0 comentarios:
Publicar un comentario