Vulnerabilidades de XSS en el sitio de redes sociales ruso ‘VKontakte’

Hace poco tiempo, decidí preparar una presentación sobre vulnerabilidades web y específicamente sobre ataques XSS. Esto implicaba estudiar la forma en que funcionan los sistemas de filtración actuales.

Seleccioné el sitio web de redes sociales ruso más popular, VKontakte.ru, como banco de pruebas. Una cosa que me llamó la atención fue el sistema actualizado de estado del usuario.

A continuación se muestra el código HTML en la parte de la página donde los usuarios editan sus mensajes de estado:

Vulnerabilidades de XSS en el sitio de redes sociales ruso 'VKontakte' 1

Como puede ver, el filtrado se realiza mediante la función infoCheck (). El estado en sí se encuentra en esta cadena:

Vulnerabilidades de XSS en el sitio de redes sociales ruso 'VKontakte' 2

Lo que tenemos aquí es la filtración en dos pasos. El primer paso se realiza cuando el usuario ingresa el mensaje de estado. El segundo paso consiste en convertir el mensaje de estado en texto y devolverlo a la página en la forma en que otros usuarios lo verán.

Si bien el segundo paso definitivamente funciona bien y claramente sería imposible convertirlo a XSS activo, las cosas no son tan simples en lo que respecta al primer paso, por lo que es ese paso el que veremos con mayor detalle.

Predeciblemente, lo simple no funcion√≥ y el estado permaneci√≥ vac√≠o. Otros intentos ‘tipo script’ tampoco funcionaron, parece que esta cadena en particular se filtra expl√≠citamente.

sin embargo, el