¿Es posible eliminar un sitio usando javascript en la barra de URL?

2

Si un sitio está escrito lo suficientemente mal, ¿es posible eliminarlo o alterarlo con solo usar javascript en la barra de URL?

    
pregunta Moshe 22.11.2010 - 02:13
fuente

2 respuestas

9

Sí, en teoría, un sitio podría tener una función javascript que iniciará una llamada AJAX para destruir el sitio. Entonces, simplemente puedes ingresar:

javascript:destroySite();

No puedo pensar por qué un sitio tendría una función destroySite , pero es teóricamente posible. Lo más probable es que sea algún tipo de función de búsqueda, que es vulnerable a la inyección de SQL:

javascript:search("'; drop table users; --");

Debo agregar que estos vectores de ataque dependen de las vulnerabilidades del lado del servidor, y usted debe apuntalar el código del lado del servidor para protegerse contra la inyección de SQL y asegurarse de autenticar cualquier solicitud AJAX que requiera autenticación, antes de permitirlos. para cambiar cualquier cosa en el servidor.

Esencialmente, la conclusión es: Nunca confíe en la entrada del usuario, y las solicitudes AJAX son entrada del usuario

    
respondido por el pkaeding 22.11.2010 - 02:39
fuente
0

El esquema javascript: ejecuta las declaraciones de Javascript en el contexto de la página actual. Podrías lograr el mismo efecto escribiendo o pegando fragmentos de Javascript en la consola de Firebug. Por lo tanto, si el sitio puede ser "derribado" por algún JavaScript que se ejecuta en el contexto de la página actual, es posible (a través de javascript: en la ventana del navegador, con Firebug u otra consola web).

Pero javascript: (y datos :) Los esquemas de URL plantean problemas especiales con los ataques de scripts entre sitios: a menudo es posible "eliminar" (comprometer) al USUARIO. Si el sitio permite la inyección de los datos del usuario en las URL y no valida correctamente los datos entrantes, puede crear un agujero de secuencias de comandos entre sitios. Por ejemplo, considere una página que toma la última página de un parámetro cgi, filtra todas las etiquetas y citas de la entrada y se hace eco de la entrada filtrada dentro de la etiqueta: "> Haz clic aquí para volver

Si el atacante consigue que un usuario haga clic en la URL donde está el parámetro cgi de la última página: lastpage = javascript: alert (document.cookie) El sitio podría terminar con: Haz clic aquí para regresar (tenga en cuenta que no hay etiquetas o citas en los datos inyectados). Cuando el usuario hace clic en el enlace, se ejecuta el Javascript inyectado (a veces llamado "XSS de un clic", ya que a menudo requiere la interacción del usuario para su ejecución): por supuesto, en el ataque real, no haría una alerta sino que ejecutaría una script que envía las cookies robadas al sitio del atacante, o hace algo igualmente desagradable).

Lo correcto es recordar dónde en la página se usará la entrada filtrada (en qué contexto, en este caso, la URL) y ajustar el filtrado en consecuencia, por ejemplo, verifique que el esquema se limite solo a http: // o https: //.

El filtrado de URL y evitar el javascript: los ataques de inyección no se refleja (aún) en la Hoja de referencia de prevención XSS de OWASP enlace

    
respondido por el dmitris 20.12.2011 - 15:38
fuente

Lea otras preguntas en las etiquetas