首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

黑客XSS攻击原理 真是叹为观止!

网络世界中的黑客XSS攻击原理

在现实世界的攻击实例中,保存型XSS漏洞可能会造成严重后果的特点表现得非常明显。

当收件人查阅电子邮件时,邮件内容在浏览器中显示;Web邮件应用程序的这种行为本身就存在着保存型XSS攻击风险。电子邮件中可能包含HTML格式的内容,因此应用程序会立即将第三方HTML复制到向用户显示的页面中。如果攻击者可以向一名受害者发送一封包含恶意 JavaScript、HTML格式的电子邮件,同时,如果恶意脚本并未被应用程序过滤或净化,那么受害者只要阅读这封电子邮件,就会泄露他自己的Web邮件账户。

Hotmail等应用程序执行大量过滤以防止嵌入到电子邮件中的 JavaScript 被传送到收件人的浏览器中。但是,近年来,人们已经发现各种避开这些过滤的方法,攻击者可以专门创建一封电子邮件,只要受害者在Web邮件应用程序中查看这封邮件,他就可以成功执行任意 JavaScript 脚本。由于任何用户在阅读电子邮件时肯定已经登录了应用程序,因而这种漏洞可能会给应用程序带来严重的威胁。

2005年,社交网络站点 MySpace 被发现易于受到保存型XSS攻击。虽然 MySpace 的应用程序实施了过滤,防止用户在他们的用户资料页面嵌入JavaScript脚本,但是,一位名叫Samy的用户找到了一种避开这些过滤的方法,并在用户资料页面中插入了一些JavaScript脚本。如果一名用户查看他的用户资料,这段脚本就会执行,导致受害者的浏览器执行各种操作。这就造成了两个严重后果:首先,它把Samy加为受害者的"朋友";其次,它把上述脚本复制到受害者自己的用户资料页面中,因此,任何查看受害者用户资料的用户也会成为这次攻击的受害者。为执行各种必要的请求,Samy 在攻击中使用了Ajax技术(请参阅后文对Ajax的补充说明)。结果,一个基于XSS的蠕虫在因特网上迅速扩散,几小时内,Samy收到了近100万个朋友邀请,如图 12-6 所示。

为此,MySpace被迫关闭它的应用程序,从所有用户的资料中删除恶意脚本,并修复反XSS过滤机制中的缺陷。最终,Samy被迫向MySpace提供经济补偿,并被处罚以为期3个月的社区服务;但他的众多"朋友"并没有来帮忙。

Ajax

Ajax(异步JavaScript和XML)是一些应用程序用于改善交互性用户体验的一种技术。在大多数Web应用程序中,用户每执行一个操作(如单击一个链接或提交一个表单),服务器都会加载一个新的HTML页面。整个浏览器中的原有内容将被新的内容替代,即使有许多内容与原来的内容完全相同。这种操作方式与电子邮件客户端和其他办公软件等本地应用程序的行为截然不同,因为它会不时地打断用户的浏览体验。

Ajax为Web应用程序提供一个行为更接近于本地软件的用户界面。用户操作仍然会触发服务器来回传送请求与响应;但是,每次操作时,整个Web页面并不会重新加载。相反,请求并不以浏览器导航事件(navigation event)的形式发生,而是由客户端 JavaScript 异步提出。服务器以一个包含 XML、JSON或其他格式信息的轻量级消息进行响应,消息内容由客户端脚本处理,用于对用户界面进行相应的更新。例如,在一个购物应用程序中,如果用户单击"添加至购物篮"按钮,应用程序会将这一操作传送给服务器,并在屏幕顶端显示"您的购物篮包含 X 商品"消息。页面本身并没有重新加载,从而建立一种更加顺畅、更令人满意的用户体验。

Ajax通过XMLHttpRequest对象执行。在不同的浏览器中,这个对象的形式各异,但其功能基本相同。下面是一个简单的示例,说明如何在 Internet Explorer中使用Ajax发布一个异步请求,并处理它的响应。

当使用XMLHttpRequest时,要注意一个非常重要的限制,即它只能用于向和调用它的页面相同的域提出请求。如果没有这个限制,使用 Ajax 就可以轻易违背浏览器的同源策略,使得应用程序可从另一个域中提取并处理数据。

(免责声明:部分图文来源于网络,如有侵权,请联络我们删除)

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171210A0D97Z00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券