网站应用攻击与防御之XSS攻击

2011年6月28日, 许多微博用户发现自己“ 中毒”,自动关注了一个叫 hellosamy 的用户,并发布含有病毒的微博,粉丝点击后微博再度扩散,短时间内大量用户中招,数小时后新浪微博修复漏洞。

攻击新浪微博的手段被称作 XSS 攻击, 它和 SQL 注入攻击构成网站应用攻击最主要的两种手段,全球大约70%的 Web 应用攻击都来自 XSS 攻击和 SQL 注入攻击。此外,常用的 Web 应用还包括 CSRF 、 Session 劫持等手段。

XSS 攻击即跨站点脚本攻击(Cross Site Script ),指黑客通过篡改网页,注入恶意 HTML 脚本,在用户浏览网页时,控制用户浏览器进行恶意操作的一种攻击方式。

常见的 XSS 攻击类型有两种,一种是反射型,攻击者诱使用户点击一个嵌入恶意脚本的链接,达到攻击的目的。新浪微博攻击就是一种反射型 XSS 攻击。攻击者发布的微博中有一个含有恶意脚本的 URL (在实际应用中,该脚本在攻击者自己的服务器 URL 中包含脚本的链接) ,用户点击该 URL ,脚本会自动关注攻击者的新浪微博 ID ,发布含有恶意脚本 URL 的微博,攻击就被扩散了。

反射型XSS攻击

这次攻击还只是一次恶作剧而已,现实中,攻击者可以釆用 XSS 攻击,偷取用户Cookie 、密码等重要数据,进而伪造交易、盗窃用户财产、窃取情报。

另外一种 XSS 攻击是持久型 XSS 攻击,黑客提交含有恶意脚本的请求,保存在被攻击的 Web 站点的数据库中,用户浏览网页时,恶意脚本被包含在正常页面中,达到攻击的目的。此种攻击经常使用在论坛,博客等 Web 应用中。

持久型XSS攻击

XSS 攻击相对而言是一种“ 古老”的攻击手段,却又历久弥新,不断变化出新的攻击花样,许多以前认为不可能用来攻击的漏洞也逐渐被攻击者利用。因此 XSS 防攻击也是非常复杂的。主要手段有如下两种。

消毒

XSS 攻击者一般都是通过在请求中嵌入恶意脚本达到攻击的目的,这些脚本是一般用户输入中不使用的,如果进行过滤和消毒处理,即对某些 html 危险字符转义,如“ >”转 义 为“ &gt ”、“<”转 义 为“ &lt 等,就可以防止大部分攻击。为了避免对不必要的内容错误转义,如“ 3<5”中的“ <”需要进行文本匹配后再转义,如 “<img src =”这样的上下文中的“<”才转义。事实上,消毒几乎是所有网站最必备的 XSS 防攻击手段。

HttpOnly

最早由微软提出,即浏览器禁止页面 JavaScript 访问带有 HttpOnly 属性的 Cookie。HttpOnly 并不是直接对抗 XSS 攻击的, 而是防止 XSS 攻击者窃取 Cookie。 对于存放敏感信息的 Cookie, 如用户认证信息等, 可通过对该 Cookie 添加 HttpOnly 属性, 避免被攻击脚本窃取。

打赏
吐槽 (3)
转贴到:
×
加载中,请稍候…

您需要 登录 后才能发表评论。

avatar

- 评论

  • 加载中,请稍候…
我要吐槽