跨站点脚本(XSS)的简单介绍(一种常见的攻击技术)

跨站点脚本(XSS)是一种攻击技术,它将攻击者提供的代码回显到用户的浏览器实例中。浏览器实例可以是标准的web浏览器客户机,也可以是嵌入到软件产品(如WinAmp中的浏览器、RSS阅读器或电子邮件客户机)中的浏览器对象。代码本身通常是用HTML/JavaScript编写的,但也可以扩展到VBScript、ActiveX、Java、Flash或任何其他浏览器支持的技术。

当攻击者让用户的浏览器执行他/她的代码时,代码将在托管web站点的安全上下文中(或区域)运行。有了这个级别的特权,代码就能够读取、修改和传输浏览器可以访问的任何敏感数据。跨站点脚本用户的帐户可能被劫持(cookie盗窃),他们的浏览器可能被重定向到另一个位置,或者可能显示他们正在访问的web站点提供的欺诈内容。跨站点脚本攻击本质上破坏了用户和web站点之间的信任关系。利用从文件系统加载内容的浏览器对象实例的应用程序可以在允许系统折衷的本地机器区域下执行代码。

 

跨站点脚本攻击有三种类型:非持久性、持久性和基于dom的。

非持久性攻击和基于dom的攻击要求用户要么访问带有恶意代码的特殊设计的链接,要么访问包含web表单的恶意web页面,这些web表单一旦发布到易受攻击的站点,就会引发攻击。当脆弱的资源只接受HTTP POST请求时,通常会使用恶意表单。在这种情况下,表单可以在受害者不知情的情况下自动提交(例如使用JavaScript)。单击恶意链接或提交恶意表单时,XSS有效负载将得到回显,并由用户的浏览器解释并执行。发送几乎任意请求(GET和POST)的另一种技术是使用嵌入式客户机,比如Adobe Flash。

当恶意代码被提交到存储了一段时间的web站点时,就会发生持久攻击。攻击者最喜欢的目标通常包括留言板帖子、web邮件消息和web聊天软件。不知情的用户不需要与任何其他站点/链接(例如攻击者站点或通过电子邮件发送的恶意链接)进行交互,只需查看包含代码的web页面。

你可能感兴趣的:(Web安全)