Presentation is loading. Please wait.

Presentation is loading. Please wait.

现代浏览器地址栏之困 腾讯玄武实验室 徐少培.

Similar presentations


Presentation on theme: "现代浏览器地址栏之困 腾讯玄武实验室 徐少培."— Presentation transcript:

1 现代浏览器地址栏之困 腾讯玄武实验室 徐少培

2 我是谁

3 地址栏的重要性 We recognize that the address bar is the only
reliable security indicator in modern browsers. --Google Security Team[1] [1]

4 安全指示符上的反思

5 你会点开安全指示符吗?

6 小屏幕地址栏的挑战

7 URL URL标准目前由whatwg维护[1] URL经过20多年的发展其定义在不断扩大,很多现代的主题也开始被URL规范所覆盖。
将URI[RFC3986][2]和IRI[RFC3987][3]与现代接轨,并逐步淘汰。 使得对’网址’一词进行标准化。URL / URI / IRI URL的解析应该向HTML解析一样坚固 [1] [2] [3]

8 URL组成

9 Address Bar Spoofing

10 Address Bar Spoofing 伪造了Web最基本的安全边界,起源(orgin)
2018/11/8 Address Bar Spoofing 伪造了Web最基本的安全边界,起源(orgin) Orgin=scheme+hostname+port 但人们(包括开发人员)往往不了解起源的概念,而更倾向于理解主机(hostname)的概念。 UI简化:忽略scheme(或图标替换)/port(默认80) 可伪造的主机包括什么? 域名[RFC1034] IP:IPv4[RFC791]/IPv6[RFC4291] 只要伪造了主机,就可以认为这是一个Address Bar Spoofing漏洞。

11 Address Bar Spoofing

12 Address Bar Spoofing漏洞案例

13 CVE-2016-1707 漏洞介绍 漏洞名称 Chrome Address Bar URL Spoofing On IOS 受影响产品
Chrome < v ,IOS < v10 漏洞公告 发现者 xisigr 漏洞赏金 3000$

14 2018/11/8 CVE

15 CVE-2016-1707 key payload <body>Spoof</body>
<script> payload=“key payload"; function pwned() { var t = window.open('', 'new'); t.document.write(atob(payload));} </script> <button onclick="pwned()">click me</button> key payload <body>Spoof</body> var link = document.createElement('a'); link.href = ' document.body.appendChild(link); link.click();

16 CVE-2016-1707 key payload发生了什么
①, 跳转到一个新页面时,chrome允许对‘ 这是错误的开始,加载了一个无效地址,并未对无效地址做任何处理 ②, 页面开始加载' ,因加载的是一个无效的地址,于是地址栏处于一个挂起的状态(pending entry). ③, 当内容开始返回时,调用‘about:blank’,但此时chrome还处于一个挂起状态 (‘ ,并且把‘ 作为了最终的提交地址。 ④, 页面加载完毕。一个Address Bar Spoofing漏洞诞生了。

17 CVE 漏洞介绍 漏洞名称 Chrome Address Bar URL Spoofing with Blob-URLs 受影响产品 Google Chrome < for Windows,Mac,Linux for Android 漏洞公告 发现者 xisigr 漏洞赏金 500$

18 CVE

19 CVE <script> function pwned() { var t = window.open('', 'new'); t.document.write("<h1>phishing page</h1><title>google</title>"); t.stop();} </script> <a href=“key payload" target="new" onclick="setTimeout('pwned()','500')">click me1</a> <a href=“key payload" target="new" onclick="setTimeout('pwned()','500')">click me2</a> key payload (1) //Unicode U+FFA0 (2) blob: //空格

20 CVE-2016-5189 key payload发生了什么 Chrome 渲染了Blob-URLs的用户名和密码部分,这是极其危险的。
2018/11/8 CVE key payload发生了什么 Chrome 渲染了Blob-URLs的用户名和密码部分,这是极其危险的。 一个URL的用户名和密码不应该被渲染,因为它们可以被误认为是一个URL的主机。 Unicode字符(比如U+0020 、U+FFA0),在Chrome地址栏中将显示空白。大量的空白字符覆盖了真实的主机。

21 CVE-2016-5222 漏洞介绍 漏洞名称 Chrome Address Bar URL Spoofing 受影响产品
2018/11/8 CVE 漏洞介绍 漏洞名称 Chrome Address Bar URL Spoofing 受影响产品 Chrome < v for Winows/MAC/Linux 漏洞公告 发现者 xisigr 漏洞赏金 500$

22 CVE

23 CVE-2016-5222 <a href="key payload">Right Click</a>
(1)google.com:: (2)

24 CVE-2016-5222 key payload发生了什么
通过右键在新窗口打开页面,Chrome允许加载(google.com::)一个无效的地址。 加载(google.com)返回页面,并将(google.com:)作为最后提交地址。 之后的重定向不会触发(google.com:)被更新 加载完毕。一个Address Bar Spoofing漏洞诞生了。

25 CVE 漏洞介绍 漏洞名称 Apple Safari Addressbar Spoofing with Search Engines on IOS 受影响产品 Safari, IOS < 漏洞公告 发现者 xisigr 修复时间 报告日期2016/2/1 修复日期2017/7/20

26 CVE

27 CVE <a href=" payload">Click me</a> key payload (1) accounts.google.com (2) ……XSS Payload (3) spoof.com "><body style="background:red;visibility:hidden;"></body>

28 CVE-2017-2517 key payload发生了什么
Safari的URL地址栏和搜索栏是合并在一起的,在设置中可选择默认搜索引擎:如谷歌、雅虎、必应、百度、DuckDuckGo…… 当在默认搜索引擎中搜索的内容是网址的时,URL地址栏显示的将是这个网址。 如果这个搜索引擎存在XSS的情况下,攻击者可以使URL地址栏中为任意URL,并更改页面内容。 这样就完成了一次URL地址栏欺骗攻击。

29 Address Bar Spoofing漏洞挖掘奥义
地址栏之困 浏览器地址栏是个矛盾体,它提供两个相互竞争的角色:你在哪和你要去哪。它只能显示其中的一个。而地址栏恰是困于这两个角色的转换之中。 深刻理解地址栏之困,即是挖掘Address Bar Spoofing漏洞的核心奥义。

30 QA 公众号和微博"腾讯玄武实验室" 每天推送国际最新安全技术资料


Download ppt "现代浏览器地址栏之困 腾讯玄武实验室 徐少培."

Similar presentations


Ads by Google