在介绍跨站之前,笔者先介绍一下HTML语言和Script。
    HTML(HyperText Markup Language)即超文本链接语言。Hypertext在中文里是超文本的意思,它是指一个包含有链接的文本(文字),这个文本链接到其他的文件,通过用鼠标点击这些链接,就可以很容易地从当前的页面进入到链接所指向的页面。现在的网页(包括各论坛或博客)就是这样的。
    读者们在网上看到的网页信息就可能是放在隔壁房间的一台计算机里,也可能存放在地球另一边的某个地方。由于提供WWW服务的人并不知道将会浏览这个网页的人用的是哪一种计算机或终端,必须得保证每个人都能正确显示网页,必须用各种计算机都能“看懂”的方式来描述文件,于是就产生了HTML——超文本语言。经过HTML描述后的超文本不但文字内容本身有特殊的排版效果,更重要的是,它改变了以往平面文档的浏览方式,页面中的链接点可以指向另外一个页面,这样,要想访问另一个页面就不用关掉本页面再开另一个页面了,直接点击页面中的链接就可以了。
    在HTML 3.0以后,随着用户对页面效果的要求,比如要在页面里显示图片、播放声音或者一些其他的功能,原本的静态页面再也无法满足用户的需求,于是就有了 HTML 3.02 和 HTML 4.0 的长足发展。同时发展的还有非常著名的 ECMAScript(欧洲的某个标准脚本)。Netscape 率先扩展了它,拥有了属于自己的 LiveScript,后来更名为 JavaScript,并一直发展到 1.5 版本。在 JavaScript 发展到1.2 版本的时候,Microsoft 不甘落寞,非常顺手地把 JavaScript 带了过来,然后更名为自己的 JScript,并一直发展到现在。但实质上,JavaScript 和 JScript 基本上都是一致的,除了专用于自己浏览器的那么一小点东西,它们的文件后缀名都是 js。配合 XML 中的 DOM 1.0 技术,用户可以利用 Script 完全控制HTML 页面中的每一个元素、每一个属性,甚至是每一个字符在特定时候的变化,这时候编写网页就跟编程差不多了。因为可以编写代码,所以攻击者想尽方法要往页面里加入自己的攻击代码,让浏览这个页面的计算机都运行那段代码。在经过不断地尝试之后,终于成功了,于是一种新的攻击方法——XSS应运而生。
    XSS又叫做CSS(Cross Site Script),跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意HTML代码,当用户浏览该页时,嵌入其Web里面的HTML代码会被执行,从而达到恶意用户的特殊目的。XSS属于被动式攻击,因为其被动且不好利用,所以许多人常忽略其危害性。但是,实际上利用它在各大论坛里插木马网页比入侵服务器再挂木马效率要高得多,而且隐蔽性也强很多,而且跨站脚本攻击很容易上手,于是,在注入攻击方式还没有流行起来之前,跨站攻击就成了“脚本小子”们的最爱,甚至一直到现在,利用CSS攻击网站的人还是很多的。
 
本文节选自电子工业出版社2008年10月出版的《黑客攻防实战进阶》一书。
跨站脚本的来源_休闲
到当当网购买
到卓越网购买
到china-pub购买

浏览更多精彩文章>>
订阅软件安全电子期刊>>