关注公众号,阅读优质好文。
点击劫持
点击劫持是一种恶意的用户界面攻击技术,也被称为 “UI 覆盖攻击” 或 “透明劫持”。
攻击者通过创建一个看似正常的网页,并在其中嵌入一个隐藏的、透明的 iframe 框架,该框架指向目标网站的某个功能页面,如支付页面、订阅页面等。同时,攻击者会在 iframe 上方放置一些虚假的按钮或链接,诱导用户点击。当用户点击这些虚假元素时,实际上是在不知情的情况下点击了下方 iframe 中的真实按钮或链接,从而执行了攻击者期望的操作,如进行支付、订阅服务、修改账户信息等。
前言
相比于跨站脚本(XSS)、远程代码执行(RCE)、SQL 注入(SQLi)等漏洞,我决定在 Google 和 Facebook 中寻找点击劫持(Clickjacking)漏洞。点击劫持通常是漏洞赏金计划中报酬最低的漏洞之一,很多企业甚至将其排除在漏洞范围之外,并低估了其危害。
漏洞1
1、存在一个网址:
https://play.google.com/store/epurchase?dp=null&hl=en&docId=subs:com.google.android.apps.docs:r1.100gb&usegapi=1&id=I2_1505755312332&parent=https://www.google.com
2、当将该网址添加至 <iframe src>中时,会触发内容安全策略(CSP)错误:
“拒绝在框架中显示‘https://play.google.com/store/epurchase?dp=null&hl=en&docId=subs:com.google….docs:r1.100gb&usegapi=1&id=I2_1505755312332&parent=https://www.google.com’
因为一个祖先元素违反了以下内容安全策略指令:
‘frame-ancestors ‘self’ https://*.google.com https://*.googleusercontent.com https://editionsatplay.withgoogle.com https://livecase.withgoogle.com’。”
3、可以看出,*.google.com 允许嵌入该网址。
4、访问 play.google.com,使用 Google Play 充值码充值金额大于 200 印度卢比。
5、访问 sites.google.com 并创建一个新网站,该平台提供了插入 iframe 的选项。将步骤 1 中的网址添加到 iframe 的 src 中。
6、我将其嵌入至https://sites.google.com/site/conceptofmathematicsnow/。
7、页面成功加载,仅需点击 “订阅” 按钮,130 卢比的金额便会被扣除,用户将在不知不觉间订阅 100GB Google 云端硬盘服务。
总结而言,该过程利用了 sites.google.com 允许嵌入 play.google.com 网址的特性,实现了对 Google Play 订阅页面的跨站嵌套,从而在用户不知情的情况下完成订阅扣费操作,具有一定的安全风险。
攻击场景
页面上的点击劫持可能导致用户的Google Play 账户被扣费,并在不知情的情况下订阅 Google 云端硬盘的升级服务。
1、攻击者将以下链接:
https://play.google.com/store/epurchase?dp=null&hl=en&docId=subs:com.google.android.apps.docs:r1.100gb&usegapi=1&id=I2_1505755312332&parent=https://www.google.com
嵌入到任意一个sites.google.com 网站,例如:
https://sites.google.com/site/conceptofmathematicsnow/
在该站点中,攻击者可以添加 JavaScript 插件以进一步操控页面行为。
2、当用户访问https://sites.google.com/site/conceptofmathematicsnow/,并无意间点击页面上的订阅按钮时,资金便会自动扣除,且用户会在毫无察觉的情况下完成 Google 云端硬盘的订阅。
漏洞2
通过 Google 的开放重定向漏洞对 https://payments.google.com/ 进行点击劫持(奖金:3,133.7 美元)
1、在网页中插入以下 iframe:
<iframeheight="1200px"width="1200px"src="https://www.google.com/url?sa=D&q=https://payments.google.com/payments&usg=AFQjCNGnO25JhaC9l_zIK-Is46SusuQRsQ"></iframe>
2、该 iframe 中的 URL 会导致 https://www.google.com/url 成为 payments.google.com 页面上的 Referer。
3、Referer 验证通过,X-Frame-Options 头部将消失,从而允许 payments.google.com 页面在 iframe 中加载。
攻击场景
该漏洞使得整个 payments.google.com 页面/选项卡变得可被点击劫持(Clickjackable)。攻击者通过少量的用户交互,能够:
1、关闭受害者的 Google 支付账户2、将攻击者的账户添加为受害者账户的管理者3、更改受害者的支付资料
漏洞3
通过 https://docs.google.com/picker 进行点击劫持(奖金:1,337 美元)
在 YouTube 中,点击 上传按钮,选择 “从 Google Photos 导入您的视频”,此时会弹出视频选择器(Picker)。其 URL 为:
https://docs.google.com/picker?protocol=gadgets&origin=https%3A%2F%2Fwww.youtube.com&hostId=yt-upload-importer&hl=en_GB&title&actions=picked%2Ccancel%2Cloaded%2Creceived%2CviewContentRendered&mineOnly=true&multiselectEnabled=true&shadeDialog=true&horizNav=true&maxItems=300&relayUrl=https%3A%2F%2Fwww.youtube.com%2F%2Fs.ytimg.com%2Fyts%2Ffavicon-vflz7uhzw.ico&pp=%5B%5B%22album%22%2C%7B%7D%5D%5D&nav=((%22photos%22%2C%22All%20Videos%22%2C%7B%22type%22%3A%22videos-uploaded%22%2C%22svm%22%3Atrue%2C%22rdv%22%3Atrue%7D)%2C(%22photos%22%2C%22Auto%20Backup%22%2C%7B%22type%22%3A%22videos-camerasync%22%2C%22svm%22%3Atrue%7D)%2C(%22photos%22%2C%22Albums%22%2C%7B%22selectAlbum%22%3Atrue%7D))&rpctoken=tppfn9l0d0ug&rpcService=40cmfpboj50i
2、观察 origin 参数的影响:
A. origin=https://www.youtube.com 时,响应头 X-Frame-Options 允许 ALLOW-FROM https://www.youtube.com,因此可以嵌入 YouTube 页面。
B. origin=https://anything.com 时,会返回错误页面,并且 X-Frame-Options: https://anything.com。
C. origin=https://sites.google.com 时,同样会返回错误页面,并且 X-Frame-Options: https://sites.google.com。
D. origin=https://beta.sites.google.com 时,Picker 页面可以正常显示,不会返回错误页面,且 X-Frame-Options: https://beta.sites.google.com。
同样的情况也适用于 https://googledrive.com,即这些页面可以正常嵌入。
3、这意味着我们可以在 https://beta.sites.google.com 上嵌入该视频选择器(Picker)。
4、通过 iframe 在 https://beta.sites.google.com/site/conceptofmathematicsnow/ 上成功嵌入该页面,并正常显示:
攻击场景
攻击者可通过点击劫持的方式,使受害者无意间将自己的私人/非公开视频转换为公开,从而泄露隐私。
漏洞4
Google Sites(新版)设置页面的点击劫持漏洞(奖金:1,337 美元)
1、X-Frame-Options 设置为 Same-Origin,因此 https://sites.google.com/new?usp=jotspot_si 页面可以嵌入到用户自己的 Google Sites 页面,例如:
https://sites.google.com/site/conceptofmathematicsnow/
2、成功嵌入后,攻击者可以在 https://sites.google.com/site/conceptofmathematicsnow/ 页面上进行操作。
攻击场景
该页面包含敏感操作,攻击者可以通过点击劫持诱导用户执行以下危险操作:
1、删除 Google Sites 页面(将其移至回收站);2、重命名页面,可能导致伪造页面并用于钓鱼攻击。
漏洞5
Google Sites 错误页面的点击劫持漏洞(奖金:1,337 美元)
1、创建一个新的 Google Sites 页面,然后在其中嵌入一个 iframe,src 设置为:
https://sites.google.com/site/sites/_/.%2F..%2f/..%2F/etc/passwd
2、打开新的浏览器会话,首先登录 Google 帐号(Gmail 和 Google Sites)。
3、在新的标签页中,打开第 1 步创建的 Google Sites 页面,例如:
https://sites.google.com/view/raushannewtest
4、由于用户已登录 Google 账户,iframe 内部可能会显示更改公开资料图片的选项(例如,选择来自 Google 相册或 Google Drive 的私人照片)。
攻击场景
攻击者可以通过嵌入 Google Sites 错误页面,在受害者不知情的情况下执行以下操作:
1、将私人照片公开(从 Google Drive 或 Google 相册中选择并公开);2、上传恶意文件到 Google Drive,可能用于钓鱼或传播恶意代码;3、自动订阅 Google Sites 的变更通知,可能导致垃圾邮件或信息泄露。
此漏洞的影响类似于 Google Drive Picker 的嵌入漏洞。
漏洞6
可嵌入未列出的 YouTube 视频(奖金:500 美元)
1、进入 YouTube 视频管理页面 → 高级设置 → 分发选项 → 取消勾选“允许嵌入”,此操作本应禁止该视频被嵌入到 iframe 中。
2、测试嵌入,发现该视频仍然可以通过 iframe 进行嵌入:
<iframesrc="https://www.youtube.com/embed/pbsQVpEROw4"></iframe>
攻击场景
即使用户选择不允许嵌入视频,该视频仍然可以被嵌入到其他网站,从而带来以下风险:
1、用户本意是限制视频的传播,但该视频仍然可以被公开播放,侵犯了用户的隐私设置;2、某些未列出的内容可能会被滥用并广泛传播,上传者无法有效控制视频的传播范围。
原文始发于微信公众号(玲珑安全):价值10w的Google点击劫持漏洞
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论