前言

在国际pwn大赛上,浏览器安全一直是重头戏,特别是神奇的沙盒穿越更是难上加难,本文开始分享学习浏览器安全的点点滴滴。

1.浏览器的Bug在哪里?

首先要了解漏洞出现在哪里,才知道怎样找到浏览器的漏洞

用户界面

浏览器引擎

渲染引擎

网络交互

JavaScript解释器

UI后端

数据持久层

浏览器的Bug在哪里

2.了解常见漏洞类型

那么安全研究人员提交的浏览器漏洞都有哪些类型?

信息泄露

拒绝服务

代码执行

模糊测试

同源策略

内容安全策略

XHR

地址栏欺骗

常见漏洞类型何为Origin? 

Origin

3. SOP – Same origin policy

在1996年Netscape规定,正常情况下,浏览器不会把页面A的数据给页面B

SOP - Same origin policy

Demo Code:

SOP - Same origin policy

如果这样一段代码可以让你在某个浏览器打开指定页面,那么恭喜你找到了一个SOP Bug

4. CSP – Content Security Policy

它是W3C维护的一个标准,用于保护浏览器受到的多种攻击,像:

UXSS

SOP

Code Injection

Use Inline Styles Violation

Demo Code:

我们可以打开这样一个网站,点击“run”帮助我们自动化的测试CSP Bug

Link:http://csptesting.herokuapp.com/

CSP - Content Security Policy

5. RCE – Remote Code Execution

https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsILocalFile

例如Mozilla提供了一个组件“nsilocfile”,这个组件可以使用字符串来引用

‘@mozilla.org/file/local; 1′ —> Contract ID,使用JavaScript和CID,我们可以引用任何其他组件

Demo Code:

RCE - Remote Code ExecutionRCE - Remote Code Execution

#2 RCE – UI Backend

了解UI后端问题引起的RCE,

https://paper.seebug.org/719/

Edge RCE – UI Backend (CVE-2018-8495) Exploit Code:

RCE - Remote Code Execution

6. Address Bar Spoofing

地址栏欺骗,阅读经典的CVE-2018-8383了解,

writeup:https://www.rafaybaloch.com/2018/09/apple-safari-microsoft-edge-browser.html

Edge Browser Address Bar Spoofing (CVE-2018-8383) Exploit Code:

Address Bar Spoofing

7. Content Spoofing

内容欺骗是Spoofing攻击的子集,类似这样的组合,现在的浏览器基本不存在这样的问题了,

Demo Code:

Content Spoofing

#2 Content Spoofing:

Demo Code:

Content Spoofing如果前后复制的内容有变化,你就找到了新的Bug

8. uXSS

本来想拿CVE-2018-6128(https://bugs.chromium.org/p/chromium/issues/detail?id=841105)举例,

但liveoverflow已经给了最好的教程(https://www.youtube.com/watch?v=0uejy9aCNbI),

这里集了大多数浏览器uxss的poc/exploit(https://github.com/Metnew/uxss-db),

可以尝试对各种国产浏览器进行测试,

因为国产浏览器都只是套Chromium,没修复的概率很大,混几个CVE应该不难

Demo Code:

uXSS

9. bUG Bounty 

报告漏洞有3个关键,确保拿到了钱,要有CVE ID,写writeup

Safari:product-security@apple.com

Chrome:https://bugs.chromium.org/p/chromium/issues/

Mozilla Firefox:https://bugzilla.mozilla.org/home

Others:…

Phish Test:

低成本

此类攻击有几个很有意思的特点,设置简单,成本低,高回报

伪造子域 & 拼写错误

同形异义字攻击

标签伪造URL

bUG Bounty

高回报

此类攻击的作用通常是窃取账号,或者用来给受害者安装恶意软件

伪造子域 & 拼写错误

http://www.google.com.evil.org

http://www.evil.org/p/google.com/support/

http://www.rnicrosoft.com

类似于这样的域名书写,让人误以为这是正规网站,取得信任度以后接下 来的操作就会很方便bUG Bounty

标签伪造URL,点进去看似谷歌的域名,会跑到”百度”上去

bUG Bounty

只要这样一段简单的html,放到网页,邮箱等地方

image.png

bUG Bounty

○印尼同形异义字攻击

(IDN homograph attack)

攻击手段且不说,当时我认为这是最容易获得一笔赏金的方式,

可以参考这些Report:

https://hackerone.com/reports/271324

https://hackerone.com/reports/172933

https://hackerone.com/reports/385372

https://hackerone.com/reports/59372

我们先来看一下Unicode是什么,打开Character Map,

image.png

尝试”www.freebuf.com“, 

image.png

当然这样有点蠢,我们接下来试一试这个办法

●EvilURL

https://github.com/UndeadSec/EvilURL.git

我们用这样一个工具可以生成一个有Unicode的url,

image.png

打开地址会跳转到这样一个网址,

表示xn后面所有内容都是unicode编码的”,

因为DNS不支持,但你可以托管注册一个这样的域名,

以便跳转到假地址实施测试

test.gif

●用社会工程学完成二次交互

像pwn2own这样的大赛上,一个浏览器的RCE可以让设备直接执行任何shellcode,

但这不符合大多数人实际情况,有一个解决办法就是用社会工程学,让对方下载然后打开我们的Payload,

image.png

在beef的这一栏目,像Chrome,Firefox的Bar,还有Fake Flash Update这些就符合需要,

image.png

它不仅仅是flash的一个欺骗框,配合对应的假图片和一点社工技巧,让对方运行你的恶意软件并不难,

test1.gif

以上就是对Phish Test的一些案例,有兴趣的朋友们可以实践一番

防范策略:

细看域名,不明白的链接不要点

面对挂马Nday及时安装安全补丁和杀毒防护软件

好奇心驱使一定要看的东西选择,物理隔离,虚拟机,沙箱

未完待续…

*本文作者:conusys,转自FreeBuf