首页
社区
课程
招聘
[翻译]使用Sboxr自动发现和利用DOM型XSS攻击漏洞(第一部分)
发表于: 2019-4-30 16:10 14775

[翻译]使用Sboxr自动发现和利用DOM型XSS攻击漏洞(第一部分)

2019-4-30 16:10
14775

本系列文章将会向你展示:怎样利用Sboxr自动识别单页面应用或JavaScript富应用上的DOM型XSS漏洞。为了更好的介绍,我搭建了一套DOM型XSS漏洞演练平台——1a0K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1L8$3#2Y4L8#2)9J5k6h3q4@1,上面有10个练习题和对应的POC。

本篇是第一部分,主要包含前两个练习题的介绍和解题方法。其他题会在之后的文章中介绍。

此外,所有练习题的解题方法会整合在一个gitbook中——653K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2M7s2m8K6k6h3y4U0L8#2)9J5k6h3y4G2L8g2)9J5c8X3u0G2L8$3E0K6i4K6u0r3j5i4g2@1L8$3#2S2N6r3W2F1k6#2)9J5k6r3c8A6M7$3y4G2N6X3g2J5P5g2)9J5k6r3q4F1k6q4)9J5k6r3g2^5M7r3I4G2K9i4c8A6L8X3N6Q4x3X3c8V1L8$3#2Q4x3X3c8U0L8r3W2W2L8Y4c8Q4x3X3c8^5M7%4y4Q4x3V1j5`.


纵观跨站脚本攻击的历史,DOM/Client型XSS漏洞在安全人员的心中一直都有特殊的地位。一般的检测技术很容易忽略这种类型的XSS漏洞,而这种漏洞又很容易发生在使用了大量JS的应用中。

OWASP中定义DOM型XSS漏洞为:通过改变受害者浏览器中用于原始客户端脚本的DOM环境,使客户端代码以“意外”的方式执行。这意味着,不是因为页面本身(即HTTP响应)改变,而是因为DOM环境被恶意修改,导致客户端代码以不同的方式执行。

简而言之,当来自DOM源(比如location.hash)的用户输入,找到了通往DOM接收器(比如HTMLElement.innerHTML)的方法时,DOM型XSS漏洞就会出现。DOM型XSS攻击千变万化,因为DOM源和接收器的类型多种多样,取决于JS的复杂程度和实现的功能。

我们使用Ubuntu 18.04和Chrome 72安装工具。设置的步骤如下:

1.下载Sboxr——6d5K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6K6j5X3!0^5M7W2)9J5k6h3y4G2L8g2)9J5c8R3`.`.download(Sboxr是收费的,可以用企业邮箱注册试用账号)

2.安装.NET Core SDK(需安装与Sboxr相匹配的SDK版本,译者安装v2.1.302)

Linux系统可参考:789K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1L8%4c8F1k6i4c8Q4x3X3g2E0K9h3y4J5L8%4y4G2k6Y4c8Q4x3X3g2U0L8$3#2Q4x3V1k6V1L8%4N6F1L8r3!0S2k6q4)9J5c8X3I4A6L8Y4g2^5i4K6u0V1M7r3q4U0K9$3q4Y4k6g2)9J5k6r3#2S2L8X3q4Y4k6i4u0Q4x3V1k6#2j5Y4g2F1N6s2f1I4z5q4)9J5k6o6l9@1i4K6u0r3M7$3c8C8i4K6u0V1j5%4g2J5M7X3g2F1N6l9`.`.

Windwos系统可参考:26bK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1L8%4c8F1k6i4c8Q4x3X3g2E0K9h3y4J5L8%4y4G2k6Y4c8Q4x3X3g2U0L8$3#2Q4x3V1k6V1L8%4N6F1L8r3!0S2k6l9`.`.

3.安装完成后,运行 dotnet Sboxr.dll 启动Sboxr;

4.然后会在3333端口开启Sboxr的web页面(用于管理和分析),3331端口是代理端口;

Sboxr目前不支持SOCKS代理,所以要用Burp或OWASP ZAP拦截流量。

因为缺少可导入的证书,Https站点可能不支持Sboxr,所以在命令行端口启动chrome时要带上--ignore-certificate-errors 标签来忽略证书错误(Firefox浏览器不支持通过about:config中的network.stricttransportsecurity.preloadlist选项来禁用证书校验,所以我们选择Chrome浏览器)。

这部分内容中,我们会在XSS漏洞演练平台上检测和利用DOM型XSS漏洞。打开9ccK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1L8$3#2Y4L8#2)9J5k6h3q4@1漏洞演练平台。

以下是每个练习题使用Sboxr的解题方法,以及基于源和接收器的POC。由于这些漏洞可以让读者看到正在执行的用户控制数据,所以在提交bug报告时,可以利用这些漏洞创建你自己的POC。


1.打开fbdK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1L8$3#2Y4L8#2)9J5k6h3q4@1i4K6u0r3,左侧菜单中选择练习题1,就可以用命令行启动Chrome中的第一个练习了;

2.切换到Sboxr控制台,点击导航栏中的“代码执行”;

 

3.在HTML内容中明显可以看到,数据源是Location.hash.property,导致漏洞的接收器是HTMLElement.innerHTML ;


4.点击“代码执行”图标打开“代码执行详细信息”窗口;

 

5.点击“查看事件位置详细信息“图标,可以看到在JS中的数据被接收器HTMLElement.innerHTML使用;

6.为了确保Location.hash.property是可利用的,让JS代码从源到接收器并查看执行情况;

7.该练习题的解题方法是,通过location.hash属性传送<svg onload=alert(document.domain)>。最终的漏洞利用POC是——626K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1L8$3#2Y4L8#2)9J5k6h3q4@1i4K6u0r3j5%4S2K6M7#2)9J5c8X3g2^5j5h3#2H3L8r3g2Q4x3V1j5I4i4K6y4r3M7r3q4&6L8r3!0S2k6q4)9K6c8r3q4T1j5$3c8Q4x3U0k6S2L8i4m8Q4x3@1u0K6M7q4)9K6c8s2S2Q4x3U0y4Q4x3U0k6D9N6q4)9K6b7Y4y4$3k6#2)9J5y4e0t1H3L8$3&6D9L8$3q4V1i4K6y4p5j5h3I4W2M7Y4c8Q4x3U0S2V1L8$3y4#2L8h3g2F1N6q4)9J5k6h3c8G2L8h3q4A6L8W2)9J5z5g2)9J5y4X3N6@1i4K6y4n7



1. 左侧菜单中点击练习题1,加载第一个练习题;

2. 左侧菜单中选择练习题2,加载第二个练习题。必须通过点击操作进入题目,不能直接通过浏览器打开题目URL,因为本练习中的源是document.referrer属性;

3.像上一个练习题一样,点击Sboxr导航栏中的“代码执行”;

4.从漏洞代码中可以看出,如果referrer的URL中有一个名为 payload 的参数,则将其提取并传递给接收器;

5.可以通过以下简单的HTML页面实现漏洞利用。将该文件另存为 exercise2.html 并在本地托管(nginx/Apache/python/node/anything),通过07dK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8U0p5J5y4#2)9J5k6e0m8Q4x3X3f1H3i4K6u0W2x3g2)9J5c8X3g2^5k6i4u0U0K9i4y4W2x3W2)9J5k6h3S2@1L8h3I4Q4x3@1k6H3j5i4W2D9L8$3q4V1i4K6y4p5i4K6t1$3L8s2c8Q4x3@1u0K6N6X3N6Q4x3U0f1J5x3r3!0F1L8r3!0S2k6q4)9K6c8r3q4D9k6i4u0@1i4K6t1^5k6r3!0U0N6h3#2W2L8Y4c8Q4x3X3g2V1L8$3#2S2K9h3&6Q4x3U0W2Q4x3U0k6Y4N6q4)9K6b7W2!0q4z5q4!0m8c8g2!0n7c8W2!0q4z5g2)9&6y4#2!0m8c8g2!0q4c8W2!0n7b7#2)9&6b7R3`.`.

6.HTML页面会加载并立即重定向到练习题页面。这就表明Referrer属性是用户可控的,可以利用这个属性实现代码执行。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2020-1-22 09:31 被Green奇编辑 ,原因: 图片过期,更新图片
收藏
免费 1
支持
分享
最新回复 (6)
雪    币: 58782
活跃值: (21905)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
图片失效了
2019-5-2 09:28
0
雪    币: 1481
活跃值: (647)
能力值: ( LV12,RANK:270 )
在线值:
发帖
回帖
粉丝
3
谢谢大大~图片已正常
2019-5-5 09:09
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
您好,可以更新下图片吗( •̥́ ˍ •̀ू )
2020-1-3 09:07
0
雪    币: 1481
活跃值: (647)
能力值: ( LV12,RANK:270 )
在线值:
发帖
回帖
粉丝
5
freekey000 您好,可以更新下图片吗( •̥́ ˍ •̀ू )
抱歉哈,图片已更新
2020-1-22 09:33
0
雪    币: 2510
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
是需要翻墙吗,网站打不开呢!
2020-1-26 19:08
3
雪    币: 1481
活跃值: (647)
能力值: ( LV12,RANK:270 )
在线值:
发帖
回帖
粉丝
7
部分链接需要翻墙
2020-4-16 16:25
0
游客
登录 | 注册 方可回帖
返回