首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >点击劫持(ClickJacking)漏洞挖掘及实战案例全汇总

点击劫持(ClickJacking)漏洞挖掘及实战案例全汇总

作者头像
Jayway
发布2019-09-29 17:29:27
6.6K0
发布2019-09-29 17:29:27
举报
文章被收录于专栏:卓文见识卓文见识

1、漏洞理解

点击劫持(Click Jacking)是一种视觉上的欺骗手段,攻击者通过使用一个透明的iframe,覆盖在一个网页上,然后诱使用户在该页面上进行操作,通过调整iframe页面的位置,可以使得伪造的页面恰好和iframe里受害页面里一些功能重合(按钮),以达到窃取用户信息或者劫持用户操作的目的。

Clickjacking是仅此于XSS和CSRF的前端漏洞,因为需要诱使用户交互,攻击成本高,所以不被重视,但危害不容小觑,攻击效果见案例。

2、漏洞原理

对于漏洞的防范大部分浏览器支持的防御办法是使用X-Frame-Options头,通常设置为DENY可以很好地防范漏洞,其次SAMEORIGIN可以在某个页面失守时被绕过,ALLOW-FROM uri不被Chrome支持。其次还有CSP头:Content-Security-Policy: frame-ancestors 'self'仅支持FireFox。

也就是说,如果发现系统没有设置上述头,大概率存在ClickJacking漏洞,测试方法很简单,本地构造一个HTML文件,使用iframe包含此页面:

若返回拒绝请求,则不存在问题,控制台提示已设置X-Frame头故引用网站失败:

3、实战案例:

1) Twitter Clickjacking($1120)

Twitter的子域Periscope设置页面存在敏感信息,且未设置X-Frame头,构造HTML使用iframe包含此页面:

可正常显示页面内容:

进一步可精心设置iframe的位置等进行攻击,这个漏洞被奖励了1120刀。

2)$1800 worthClickjacking

在一些常见的端点返回用户的敏感信息,如

https://example.com/api/v1/wallet/payments?language=en返回的是用户钱包信息,查看返回包里没有设置X-FRAME头,构造一个劫持页面:

HTML文件内容为:

伪造的页面引导受害者进行一系列操作,完成之后他的敏感信息将被记录在console控制台里。

另一个类似的进阶利用是结合CSRFToken的窃取:

诱使攻击者将响应(包含CSRFToken)粘贴到表单里,使用js调用发包,更新受害者的个人信息:

4、漏洞挖掘

漏洞挖掘思路较为简单,观察业务系统中重要操作,返回包里是否有X-FRAME头或CSP头,若不存在则尝试使用iframe包含此链接,若框架内能正常显示链接的内容,则存在点解劫持风险。

5、漏洞防御

主要有三种防御办法:

1)X-Frame-Options,建议设置为DENY;

2)Content-Security-Policy:frame-ancestors 'self'或‘none’,不适用于Safari和IE;

3)js层面:使用iframe的sandbox属性,判断当前页面是否被其他页面嵌套。

当前最推荐的方案是1和3结合防御,深入了解可以阅读原文,下载斯坦福大学对此漏洞的研究论文。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 卓文见识 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、漏洞理解
  • 2、漏洞原理
  • 4、漏洞挖掘
  • 5、漏洞防御
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档