Que es un XSS?

Iniciado por #;вℓσχχ0ʁ#!, Mayo 16, 2014, 10:41:16 PM

Tema anterior - Siguiente tema

0 Miembros y 3 Visitantes están viendo este tema.

Mayo 16, 2014, 10:41:16 PM Ultima modificación: Junio 08, 2015, 07:50:00 PM por EPSILON

Hola Amigos de Underc0de

Voy a publicar este documento para que puedan comprender los 2 articulos posteriores.

Este árticulo va dirigido a la gente que.....

No conoce XSS.
Conoce XSS y creen que no sirve para nada.

A esas 2 tipos de personas les digo que lean todo el post



¿Que es XSS?

El término XSS viene heredado de CSS, a este, se le cambió la C por una X para referirse a este tipo de ataques, inyección de código.  EDIT BY JIMENO: INFORMACIÓN ERRÓNEA.
XSS NO PROVIENE DE CSS, SINO DE SUS SIGLAS CROSS SITE SCRIPTING.



Tipos de ataque XSS.

- Persistente
- Reflejado.

Persistente, como bien da entender el término es la inyección que queda en un sitio, como puede ser, una inyección a traves de un libro de visitas de una página web. Esa inyección quedará hay para cualquier usuario que entre a ese libro de visitas. [[ Petición POST. ]]

Reflejado: Este ataque solo quedará reflejado en la URL, no quedaran grabados los cambios en la página web... [[ Petición GET]]

Se preguntaran...¿El reflejado entonces para que sirve, si no queda grabado? Mayoritariamente se utiliza para utilizar sesiones (cookies)


¿Que tipos de inyección podemos conseguir?

- Inyección de código HTML
- Inyección de código Javascript / Ajax ( el más peligroso )



¿Que permite la inyeccion de código javascript?

1 – Mostrar en ese momento lo que se quiera a cualquier visitante que visite nuestro recurso.

- Atacar a otras páginas web desde la web vulnerable a XSS.

- Infección de máquinas clientes al entrar a dicho en lace.

- Robo de sesiones. (Para mí el más importante).

- Y un largo etc que no termina mientras tengamos suficiente imaginación.



¿ Que es una sesión ?

Una sesión es un fichero que se almacena en la carpeta /tmp/ del servidor con nombre aleatorio que asigna el servidor a una sesión establecida.
Por ejemplo: Si entramos a No tienes permitido ver los links. Registrarse o Entrar a mi cuenta y nos logeamos como administrador, esta, al utilizar cookies, para que no tener que introducir una y otra vez los datos cada vez accedemos hay, recuerda estos datos introducidos. Nos crea una sesión con nombre



¿Como recuerda estos datos?

Con las sesiones. Una vez introducidos los datos correctamente y logeados como administrador, el servidor establece una combinación de numeros y letras aleatorias, la cual, hace referencia a esa sesión. Si, a la sesión de administrador. (imaginemos que es 123456789aabcc)



¿Que significa esto?

Que si conseguimos obtener ese numero de sesión (123456789aabcc), tendremos acceso al panel de administración, sin introducir ni usuario ni password...

Esto no seria por tiempo ilimitado, tiene un tiempo limite y depende de cuanto tiempo se haya establecido como limite.
Normalmente son 3600s.



¿Como obtenemos el numero de sesión?

Con la ayuda de javascript. Sabemos o deberiamos saber que cada sitio solo puede acceder a los valores de cookie de ese sitio, es decir, No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, no puede mostrar los valores de la cookie de No tienes permitido ver los links. Registrarse o Entrar a mi cuenta.

Entonces, si encontramos la forma de inyectar código javascript en No tienes permitido ver los links. Registrarse o Entrar a mi cuenta podremos obtener la sesión sin problemas.

Esto se logra pasando el valor de document.cookie (cookie actual) por GET a un script php nuestro que tengamos alojado en otro servidor.
Este script, al leer el valor por GET de la cookie, la podrá almacenar en un fichero de texto, base de datos o donde se prefiera.
También es preferible mandar el contenido de la cookie por email o incluso algún aviso por sms si cabe la posibilidad, ya que, como he comentado arriba, la sesión tiene un tiempo limite. Estará activa mientras no haya alcanzando el limite de segundos o el usuario no haya pulsado expresamente el boton salir del interior de la aplicación web. (Por ejemplo de un panel de administración).

(Si cierra el navegador tal cual, sin pulsar en SALIR, no se eliminará la sesión, con lo que, quedará activa hasta X segundos).




Espero haberme explicado correctamente.
Nos vemos en los siguientes árticulos.
Saludos
-Ten0x
Los Malos Nunca Mueren
- [Spelinax]

Muy bueno para la gente que como tu dices no sabe nada de XSS.

Espero tus próximos post que mencionaste.

Saludos!

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Muy bueno para la gente que como tu dices no sabe nada de XSS.

Espero tus próximos post que mencionaste.

Saludos!

Amigo en eso ando primero conociendo y luego compartiendo ;) Gracias por apoyarme
Los Malos Nunca Mueren
- [Spelinax]

CitarEl término XSS viene heredado de CSS, a este, se le cambió la C por una X para referirse a este tipo de ataques, inyección de código.
¿Cómo que "viene heredado"? ¿No sería que se le cambiaron las siglas para diferenciar los estilos (CSS) y el ataque/vulnerabilidad?
Por lo demás, muy bueno ;)
Visita mi blog: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta.

Concuerdo con el Amigo Fermino, a no confundir XSS (Cross-site scripting) con CSS (Cascading Style Sheets).

Saludos

Gn0m3

Me ayudo bastante gracias!

Muy buena compañero, interesante informacion!!

Muy bueno, gracias por sacarme de la duda de que era XSS, yo pensaba que era algo asi como CSS
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta