听老外讲解如何将XSS转化为RCE

前言
Black Hat 2017可谓成果丰硕,除了各种安全工具和理论出现之外,也出现了许多新的安全研究方向,比如Doyensec的联合创始人Luca Carettoni就介绍了关于Electron安全方面的新思路 https://twitter.com/lucacarettoni 。为了对他的这个思路有更深入的了解,我在会后和他讨论了可能基于Electron应用程序的设计漏洞和运行漏洞,特别是在安全防护框架到位的情况下,黑客如何绕过这些漏洞,比如,也可以通过跨站脚本来呈现不可信内容来实现可靠的远程执行代码(RCE)。了解nodeIntegration标志
其实对信息安全方面有所了解的开发人员都知道,在整合了Node.js的应用中直接呈现不受信任的远程或本地内容是非常危险的。正是出于这一方面的考虑,Electron框架提供了两种不同的机制来帮助应用程序在“沙盒环境”中呈现不受信任的资源: BrowserWindow机制

寻找绕过nodeIntegration的方法
现在应该明白为什么nodeIntegration是框架的关键安全相关设置,这种机制中的漏洞可能会导致完全的主机攻击,简单地渲染不受信任的网页。作为一个网络极客,我使用这种漏洞将传统的XSS变成了RCE。由于所有Electron应用程序都与框架代码捆绑在一起,因此在整个生态系统中解决这些漏洞也是复杂的。 在我的研究中,我已经广泛分析了所有的项目代码变化,以发现先前发现的实际绕过案例,目的是研究Electron的设计漏洞。只有掌握了这些知识,才能找到绕过漏洞的办法。 通过研究官方文档,我很快就发现了Electron的“glorified”JavaScript API引起的与标准浏览器的显着偏差。当创建一个新窗口时,Electron返回一个BrowserWindowProxy的实例。该类可用于操纵子浏览器窗口,从而颠覆同源策略(SOP)。 绕过SOP的第一种办法:




缓解措施
1.升级到最新的Electron版本,因为Electron使用Chromium和Node.js,影响这些组件的漏洞可能会影响应用程序的安全性。通过将Electron更新到最新版本,你可以确保关键漏洞(例如nodeIntegration绕过)已经被修补,并且不能被利用来滥用你的应用程序。 2.采用安全编码的方式,你的应用程序的第一道防线是你自己的代码。通常的网络漏洞(如XSS)对Electron的安全性影响较大,因此强烈建议采用安全软件进行应用搭建并执行定期的安全测试。 3.了解所使用的的框架,目前流行的浏览器所采用的特定规则以及安全机制并不能适用于Electron(例如同源策略),应采取深度防范机制来缓解这些漏洞。详细信息,请参Electron木安全演示和Electron安全清单的白皮书。 4.使用最新的“沙箱”实验功能,即使nodeIntegration被禁用,Electron的当前实现也不能完全缓解加载不可信资源引入的所有风险。因此,建议使用利用Chromium的沙箱功能。沙箱渲染器没有运行Node.js环境(除了预加载脚本之外),渲染器只能通过IPC将任务委派给主进程来对系统进行更改。请注意,目前<webview>标签等还不支持沙箱检测。本文翻译自:https://blog.doyensec.com/2017/08/03/electron-framework-security.html ,如若转载,请注明来源于嘶吼: http://www.4hou.com/technology/7108.html
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

随时掌握互联网精彩
赞助链接
排名
热点
搜索指数
- 1 长江的美丽变奏 7955771
- 2 中央一号文件:推进农村高额彩礼治理 7956971
- 3 DeepSeek预测《哪吒2》最终票房 7817534
- 4 小包裹折射中国经济澎湃动能 7755310
- 5 不允许城镇居民到农村买农房、宅基地 7618598
- 6 国防部深感诧异强烈不满 7559269
- 7 马库斯被北京的空气质量震惊了 7433760
- 8 终于有部剧还原了我的高清童年 7323729
- 9 王曼昱4比0胜孙颖莎 首夺亚洲杯冠军 7297777
- 10 95后情侣夜市摆摊卖麻糍日入4000元 7149326