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.