Cross Site Scripting a Ciegas!

Un nuevo planteamiento mostrado en DEFCON 20, y aqui les traigo el Video y la definicion como Tal..

blind-xss-diagrama

¿Qué es el BLIND XSS?

Blind XSS es un Variante de cross site scripting (XSS) , donde el atacante “a ciegas” se despliega una serie de cargas útiles maliciosos en páginas web que puedan guardarlos en un estado persistente (como en una base de datos o en un archivo de registro) . Entonces, sin conocer ningún detalle acerca de que las cargas han terminado, o si (y cuando) que van a ser ejecutados, el atacante espera a que las cargas útiles que se retiró de almacenamiento y representado en una página web cargada por el usuario. Por lo tanto, a diferencia de la mayoría de los ataques XSS , que son no persistentes, y se basan en las páginas de respuesta inmediata generados a partir de la entrada de datos por el atacante en un formulario web o consulta HTTP, Blind XSS es un tipo persistente de XSS que se basa en las vulnerabilidades en el código de las páginas web de destino, lo que permite secuencias de comandos malintencionadas, insertados en los controles Web, para ser salvados por el servidor en una base de datos o archivo de un sitio web. Estos se “sirven” a otros usuarios, como parte de las respuestas de la página HTML, y sin empezar “sanetizacion” primero.

Las Blind XSS el resultado de Cross Site Scripting no lo ve el usuario atacante, sino el usuario Administrador Servicio web, y con este enviando respuesta al Atacante.. y asi haciendo el ataque de manera ciega.

Generalmente podemos ver Esto tipos de Ataques En Un registro de Log’s de un sistema de CMS, la cual el atacante introduce vectores de ataques en un login y este queda a la espera que administrador revise los logs y asi poder ejecutar el script.

La distinción del ataque Blind XSS es el hecho de que el atacante no sabe donde la carga va a terminar y si, o cuando, que será ejecutado. Por lo tanto, para que el ataque tenga éxito, el atacante necesita para asegurarse de que haya suficientes cargas útiles se despliegan, y que las cargas están hechos de tal manera que sea efectiva en el tiempo, sabe a dónde llamar y cómo cerrar las resultados. Al mismo tiempo, el atacante necesita para implementar la tecnología para escuchar por eventuales devoluciones de llamadas de las cargas útiles desplegados.

Objetivos comunes de Blind Cross Site Scripting

El objetivo más común de Blind XSS  obviamente cualquier página web que recibe la entrada del usuario y lo guarda en algún lugar para su posterior visualización (por otros) – formularios de inicio de sesión, inicie la sesión espectadores, solicitudes de servicio al cliente, manipuladores de excepciones, foros / foros, formularios de contacto, Chat de ventanas , etc…

Blind XSS  Objetivo # 1: Los formularios de inicio de sesión.

Inicio de sesión de forma general, toma la cadena de nombre de usuario de entrada y guardarlo en un archivo de registro que se puede ver, en una etapa posterior, a partir de una página web. Por lo tanto, un inicio de sesión fallido, con un script malicioso introducido en el campo “Nombre de usuario” de la forma de inicio de sesión, hará que el servidor para guardar una entrada en el registro que tendrá el script malicioso como el “nombre de usuario”. Un atacante puede realizar varios de estos intentos de inicio de sesión con el fin de obtener el script malicioso (s) en la base de datos de registro o archivo de registro. Más adelante, si el administrador del sitio web (o aplicación web) que la forma de inicio de sesión pertenece, comprueba los registros para el día, y si esos registros surgen en una página web, el script malicioso puede obtener ejecutado y llame de nuevo a el atacante con la información deseada. Objetivos típicos de este escenario son aplicaciones basadas en web que requieren autenticación, consolas de gestión web , etc el daño típico varía de credenciales robadas para el acceso no autorizado a los datos manejados por la aplicación (o aplicación) y negación de servicio. Objetivos usuarios típicos son los administradores y el objetivo por lo general tiene que ver con la seguridad.

Blind XSS Objetivo # 2: Foros / Foros

Al igual que en el escenario anterior, los atacantes pueden colocar los scripts maliciosos en el título del tema en un foro o tablón de mensajes. Una vez más, con mayor frecuencia, el servidor va a salvar su puesto a una base de datos, y la información almacenada puede exponerse a otros espectadores, como los moderadores durante un período de tiempo. En este escenario, la secuencia de comandos puede quedar desinfectados cuando se entrega a los usuarios normales, que se desactivará el código malicioso. Sin embargo, cuando un moderador del foro se carga una página web de gestión de foros, como un informe de popularidad hilo, por ejemplo, los títulos de los temas sin sanetizar la carga,  pueden cargar y, en consecuencia, serían ejecutados secuencia de comandos del atacante, llamando de nuevo con la información robada, la reorientación de la usuario o causar una denegación de servicio ataques por ejemplo el código de llamada dentro de la interfaz de administración que para el foro. Objetivos usuarios típicos son moderadores de foros o tablones de anuncios, que carga contenido del foro de las sesiones web de gestión para llevar a cabo las tareas administrativas y el objetivo es más, relacionados con la seguridad.

Detectar y prevenir ataques Blind XSS.

La mejor cura es la prevención, por lo que la mejor manera de defenderse de los ataques  Blind XSS  es asegurarse de que su sitio web o aplicación web no es vulnerable. La manera más eficaz de lograr esto es por tener los desarrolladores web revisar el código y asegurarse de que cualquier entrada del usuario está debidamente sanetizado con sus debidas funciones de seguridad. Si esto no se hace, existe el riesgo de que la entrada de usuario envie Ataques Cross Site Scripting  antes de ser guardado en el almacenamiento o se sirve al navegador del usuario, y por lo tanto su sitio web o aplicación web podría ser vulnerable a XSS, incluyendo ataques Blind XSS .

Es una buena práctica de programacion que nunca confiar en los datos proporcionados por el usuario. Con el fin de eliminar todos los riesgos, es necesario implementar la sanetizacion de la entrada del usuario antes de que se almacena, y también, como segunda línea de defensa, cuando los datos se leen desde el almacenamiento, antes de ser enviada al navegador del usuario.

La dificultad para detectar XSS ciegas sin una revisión del código proviene del hecho de que este tipo de ataque no se basa en las vulnerabilidades en el tercer partido de la tecnología de servidor web o desde el navegador web, las vulnerabilidades que estar en la lista o se puede buscar y parche. Este ataque explota las vulnerabilidades introducidas por los desarrolladores en el código de su página web o aplicación web. Así que incluso si su sitio web se realiza utilizando la última tecnología, como HTML 5 o asegúrese de que su servidor web está totalmente parcheado, la aplicación web todavía puede ser vulnerable a XSS. Además de esto, los ataques Blind XSS son incluso más difíciles de detectar ya que la carga útil se ejecuta en una aplicación web completamente diferente a donde se inyectó.

Fuente : http://websecuritydev.com/blog/blind-xss-la-bomba-de-tiempo-de-los-ataques-cross-site-scripting/