Ataques a aplicaciones web 👾


en este tipo de ataque el afectado no es directamente el servidor, sino que el objetivo directo es el usuario





Bajo la denominación de inyección de scripts se agrupan distintas técnicas que comparten el mismo sistema de explotación pero que persiguen distinto fin.

El hecho de separarlas en distintas categorías atiende únicamente a facilitar la fijación de los objetivos perseguidos.

Un concepto que debe quedar muy claro es que en este tipo de ataque el afectado no es directamente el servidor, como podría ser en el caso de un ataque de SQL Injection, sino que el objetivo directo es el usuario. Posteriormente, si el ataque es exitoso y mediante suplantación de personalidad, se podrán ejecutar las acciones deseadas en el servidor afectado y al que pueda accederse desde una página web.

Esto ha implicado que los fallos de inyección de scripts no sean considerados como amenazas críticas en algunos sectores de la seguridad informática, declarando incluso que errores de este tipo no podrían llegar a comprometer la seguridad de un sitio web. Como se demostrará a lo largo de este apartado, la inyección de scripts puede llegar a ser tan peligrosa como cualquier otra técnica si se sabe cuál es su límite y cuál es su potencial.

Se exponen a continuación casos reales relacionados con XSS ( cross site scripting) en los que la seguridad de algún sitio web ha quedado comprometida. A pesar del escepticismo de algunos, XSS puede permitir la obtención de privilegios sobre algún sistema lo suficientemente débil como para permitir insertar código Javascript.

Cross site scripting (XSS)

El cross site scripting es la base de todas las demás técnicas que se van a ir analizando en este módulo, así que es fundamental entender correctamente los conceptos que se explican a continuación.

Una página es vulnerable a XSS cuando aquello que nosotros enviamos al servidor (un comentario, un cambio en un perfil, una búsqueda, etc.) se ve posteriormente mostrado en la página de respuesta. Esto es, cuando escribimos un comentario en una página y podemos leer posteriormente nuestro mensaje, modificamos nuestro perfil de usuario y el resto de usuarios puede verlo o realizamos una búsqueda y se nos muestra un mensaje: “No se han encontrado resultados para ”, se está incluyendo dentro de la página el mismo texto que nosotros hemos introducido. Ahí es donde vamos a empezar a investigar para lograr introducir nuestro código XSS.

Cuando se habla de ejecución remota de código, es necesario considerar cómo se realiza la interacción con la página. Evidentemente, toda petición enviada al servidor va a ser procesada por este y en función de cómo la interprete, será o no factible un ataque mediante XSS.  

Una vez se ha detectado una zona de la aplicación que al recibir texto procedente del usuario lo muestra en la página, es el momento de determinar si es posible utilizar esa zona como punto de ataque de XSS. Para ello es posible insertar un pequeño código Javascript que muestra un mensaje de alerta para descubrir rápidamente si se está actuando en la línea correcta de ataque.

Ataques

Vamos a comentar a continuación las posibles implicaciones de seguridad que pueden presentar un fallo de este tipo. Ha de considerarse que se trata únicamente de ideas generales y que el límite lo pone la imaginación del atacante y las funcionalidades de la aplicación objetivo del ataque.

Un ataque de XSS puede tomar el control sobre el navegador del usuario afectado y como tal realizar acciones en la aplicación web. Si se ha logrado que un usuario administrador ejecute nuestro código Javascript, las posibilidades de actuación maliciosa son muy superiores. Será posible, por citar algún ejemplo, desde borrar todas las noticias de una página a generar una cuenta de administrador con los datos que nosotros especifiquemos. Si el código Javascript es ejecutado por un usuario sin derechos de administración, se podrá realizar cualquier modificación asociada al perfil específico del usuario en el sitio web. 

Otra posible acción a efectuar haciendo uso de estas técnicas es el phishing. Mediante Javascript, como hemos visto, podemos modificar el comportamiento y la apariencia de una página web. Esto permite crear un formulario de login falso o redirigir el submit de uno existente hacia un dominio de nuestro control.

Por otra parte, aunque menos habitual, es posible realizar un ataque de denegación de servicios distribuidos (distributed dennial of services, DDoS). Para ello se forzará mediante código Javascript a que los navegadores hagan un uso intensivo de recursos muy costosos en ancho de banda o capacidad de procesamiento de un servidor de forma asíncrona.

Para finalizar, tenemos el gusano XSS, un código Javascript que se propaga dentro un sitio web o entre páginas de Internet. Supongamos la existencia de un fallo XSS en la descripción personal de los usuarios de una red social. En esta situación un usuario malintencionado podría crear código Javascript que copiase el código del gusano al perfil del usuario que visita otro perfil infectado y que adicionalmente realizase algún tipo de modificación en los perfiles afectados.

Como se puede comprobar, las posibilidades que ofrece el XSS son realmente amplias. Las únicas limitaciones la constituye la imposibilidad de ejecutar código fuera del navegador, dado que la sandbox sobre la que se ejecuta no permite el acceso a ficheros del sistema, y a las propias funcionalidades que ofrezca el sitio web objeto del posible ataque.

SIGUE APRENDIENDO DESCARGANDO EL ARCHIVO

No hay comentarios.

Con tecnología de Blogger.