0。关键字:XSS,跨站脚本攻击,原理分析,攻击方式,防范,检查,恶意代码,蠕虫
1。概念
以下概念摘抄自百度百科:
XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的。
2。生效方式
1)构造URL
XSS攻击者通过构造URL的方式构造了一个有问题的页面;当其他人点击了此页面后,会发现页面出错,或者被暗中执行了某些js脚本,这时,攻击行为才真正生效。
一般来说,动态页面中会将url中的部分内容回写在页面中。以百度的搜索为例:
http://www.baidu.com/s?wd=
参数转义后的结果,搜索结果页中,会在标题中中和搜索框中回写用户输入的内容。从页面的源代码中,我们看到,这两处本应该显示用户输入内容的地方,实际也经过了转义处理,变成了。如果这里没有经过转义处理,则页面中就嵌入了一段script,会执行,并弹出对话框提示用户。如果是其他恶意代码,则可能造成破坏。
然后攻击者将此URL广为传播——比如说,以报错的方式发给百度的管理员,管理员打开这个URL就中招了。
2)发布内容式
构造URL攻击方式传播范围有限,被攻击者只要有基本的安全意识就可以避免,因此这种手段的危险性比较小。相比之下,通过发表内容构造的XSS的危害就大了很多。
在可以发表内容的论坛、讨论区、吧、博客、微博等网站上,用户发表的内容会保存起来,允许其他用户浏览。这些保存的内容显示在页面上的时候,如果没有经过正确的处理,也会把攻击者精心构造的内容显示出来,访问该内容的用户就此中招。如果该页面流传广泛,则影响会更加深远。
一般来说,这种攻击都做得比较隐蔽,被攻击者并不知道自己什么时候踩中了地雷;网站也很难追查问题的来源。
3)蠕虫式
上述两种方式的流传范围都有一定限度;最彻底最暴力的方式是使用蠕虫——就是首先发一个有问题的文章,浏览者阅读时会被暗中执行恶意代码,发表一篇新的文章的,该文章也含有同样的恶意代码。这样有可能在最快时间内将攻击铺满整个网站。蠕虫式攻击将暗中偷偷摸摸的攻击行为变成了光明正大的攻城拔寨,极容易被发现和修复。
下面是6月28日新浪微博被蠕虫攻击的报告,其实质就是XSS攻击。
http://www.ijinshan.com/news/20110629001.shtml
3。破坏方式
1)破坏页面结构
用户输入的内容包含了html的标签,与前面的标签等闭合,导致页面的DIV结构发生变化,页面错乱。