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

本文讲的是听老外讲解如何将XSS转化为RCE

前言

Black Hat 2017可谓成果丰硕,除了各种安全工具和理论出现之外,也出现了许多新的安全研究方向,比如Doyensec的联合创始人Luca Carettoni就介绍了关于Electron安全方面的新思路 https://twitter.com/lucacarettoni 。为了对他的这个思路有更深入的了解,我在会后和他讨论了可能基于Electron应用程序的设计漏洞和运行漏洞,特别是在安全防护框架到位的情况下,黑客如何绕过这些漏洞,比如,也可以通过跨站脚本来呈现不可信内容来实现可靠的远程执行代码(RCE)。

了解nodeIntegration标志

其实对信息安全方面有所了解的开发人员都知道,在整合了Node.js的应用中直接呈现不受信任的远程或本地内容是非常危险的。正是出于这一方面的考虑,Electron框架提供了两种不同的机制来帮助应用程序在“沙盒环境”中呈现不受信任的资源:

BrowserWindow机制

WebView机制

在上面的例子中,将nodeIntegration标志设置为false。即使在渲染器进程中运行了Node.js引擎,页面中运行的JavaScript将无法访问全局引用。

寻找绕过nodeIntegration的方法

现在应该明白为什么nodeIntegration是框架的关键安全相关设置,这种机制中的漏洞可能会导致完全的主机攻击,简单地渲染不受信任的网页。作为一个网络极客,我使用这种漏洞将传统的XSS变成了RCE。由于所有Electron应用程序都与框架代码捆绑在一起,因此在整个生态系统中解决这些漏洞也是复杂的。

在我的研究中,我已经广泛分析了所有的项目代码变化,以发现先前发现的实际绕过案例,目的是研究Electron的设计漏洞。只有掌握了这些知识,才能找到绕过漏洞的办法。

通过研究官方文档,我很快就发现了Electron的“glorified”JavaScript API引起的与标准浏览器的显着偏差。当创建一个新窗口时,Electron返回一个BrowserWindowProxy的实例。该类可用于操纵子浏览器窗口,从而颠覆同源策略(SOP)。

绕过SOP的第一种办法:

绕过SOP的第二种办法:

绕过SOP的第二种办法使用的评估机制可以用下图解释:

另外的源代码审查揭示了存在特权的URL(类似于浏览器的特权区域)。通过设计将SOP-bypass与在 lib/renderer/init.js中定义的特定特权URL相结合,我意识到我可以覆盖nodeIntegration设置。

包括影响1.6.7版本之前的所有Electron发布的nodeIntegration绕过的简单但可靠的Poc:

2017年5月10日,我通过Electron邮件向维护者报告了此问题。在几个小时之内,我收到了一个答复,他们已经在修复了,因为特权的chrome-devtools://在我报告的前几天已经被发现。

缓解措施

1.升级到最新的Electron版本,因为Electron使用Chromium和Node.js,影响这些组件的漏洞可能会影响应用程序的安全性。通过将Electron更新到最新版本,你可以确保关键漏洞(例如nodeIntegration绕过)已经被修补,并且不能被利用来滥用你的应用程序。

2.采用安全编码的方式,你的应用程序的第一道防线是你自己的代码。通常的网络漏洞(如XSS)对Electron的安全性影响较大,因此强烈建议采用安全软件进行应用搭建并执行定期的安全测试。

3.了解所使用的的框架,目前流行的浏览器所采用的特定规则以及安全机制并不能适用于Electron(例如同源策略),应采取深度防范机制来缓解这些漏洞。详细信息,请参Electron木安全演示和Electron安全清单的白皮书。

4.使用最新的“沙箱”实验功能,即使nodeIntegration被禁用,Electron的当前实现也不能完全缓解加载不可信资源引入的所有风险。因此,建议使用利用Chromium的沙箱功能。沙箱渲染器没有运行Node.js环境(除了预加载脚本之外),渲染器只能通过IPC将任务委派给主进程来对系统进行更改。请注意,目前<webview>标签等还不支持沙箱检测。

原文发布时间为:2017年8月17日

本文作者:xiaohui 

本文来自合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。

原文链接

时间: 2024-09-08 13:00:55

听老外讲解如何将XSS转化为RCE的相关文章

结合百度统计做好wordpress速度优化

一直在用百度统计作为首选统计工具,相比其他工具而言这个最大的优点就在于IP统计准确,时效性效性高.但之前总是在用其统计功能统计我的 wordpress博客.今天偶然间发现,百度统计有个网站速度诊断功能,于是乎结合百度统计做Wordpress速度优化.进入百度统计,点击速度诊 断,开始诊断.等候一点时间之后,我的Wordpress速度得分如下: 网通 40 分 电信 60 分 该工具给出的影响我的wordpress博客速度有很多很细的项目,其中有如下影响速度可以优化的地方的建议: 1. 连接网络(

教你进微软:微软招聘过程与秘笈大曝光

有一个流传很久的笑话,说是一次IBM和微软要举行谈判,为了缓和气氛,IBM的人特意去商店买了牛仔裤和T-shirt,而微软的人也特意穿上了西服,打上了蹩脚的领带. 这个笑话反映了两个公司不同的企业文化.很多人都知道微软的企业文化是宽松和自由,给员工一个充分发挥创造力的空间,这也是微软能吸引很多人才的原因之一.但是,要想进微软工作可不容易,微软在招聘工作上一点也不马虎,而是有一套自己独特的方法和严密的体系. 微软搜寻人才的方式就很特别.当微软的用户在进行联机检索时,HR工作人员就会收集他们检索的有

联合应用技术介绍之Ajax安全基础

ajax|安全 1.介绍 Ajax由于其良好的交互性,在去年很引人注目.Google Suggest 和 Google Maps [ref 1]就是一些Ajax早期的著名应用.现在,企业正在考虑他们如何也能利用Ajax,web开发者在学习它,安全专家在想如何使它变得安全,黑客们在思考如何入侵.所有能提高服务器吞吐量,能产生更多的动态页面传输,而且能为最终用户提供更加丰富的web应用的技术都必然在这个领域出现. Ajax的下一步计划称为"Web 2.0".这篇文章的目的是介绍一些关于现代

C# 2.0 套接字编程实例初探

编程 首先从原理上解释一下采用Socket接口的网络通讯,这里以最常用的C/S模式作为范例,首先,服务端有一个进程(或多个进程)在指定的端口等待客户来连接,服务程序等待客户的连接信息,一旦连接上之后,就可以按设计的数据交换方法和格式进行数据传输.客户端在需要的时刻发出向服务端的连接请求.这里为了便于理解,提到了一些调用及其大致的功能.使用socket调用后,仅产生了一个可以使用的socket描述符,这时还不能进行通信,还要使用其他的调用,以使得socket所指的结构中使用的信息被填写完. 在使用

盘点那些让用户玩起来的交互方式

  手机已经成了我们生活中不可分割的一部分,手机应用也在扮演着越来越重要的角色.它们或者帮我们打发无聊时间,或者帮助我们紧密联系远方的朋友,抑或对学习知识.获取资讯有所裨益. 手机应用有不少有趣的交互方式值得深思和学习.让我们来看看它们中有哪些好玩的交互,我们又是如何通过它们来进行操作的. 摇一摇:摇摆的节奏 自从微信引入了摇一摇的交互方式后,立即四处风靡,各种应用纷纷推出各种基于摇一摇的功能:摇一摇更换皮肤.摇一摇推荐餐馆.摇一摇换歌等.有些应用结合的比较自然,还有一些则有些牵强附会.当然,在

建模原语:四象图

原文地址:http://www.douban.com/note/164191021/ "模型.状态和行为特征.场景"和"四象图",建模观的命名与立象. 建模原语:四象图 作者:achieveidea@gmail.com 命名:模型.结构特征.行为特征.场景(及其规约). 释义: 模型,描述事物为一组时间函数,蕴藏了与事物相关的所有事实. 特征,从模型上剥离的一组时间函数.特征分为两大类,一类是结构特征,一类是行为特征. 场景,模型凝聚相应的特征持续一段时间,描述一段

从几个方向进行Web渗透测试

1.SQL Injection(SQL注入)   (1)如何进行SQL注入测试? 首先找到带有参数传递的URL页面,如 搜索页面,登录页面,提交评论页面等等. 对于未明显标识在URL中传递参数的,可以通过查看HTML源代码中的"FORM"标签来辨别是否还有参数传递,在<FORM> 和</FORM>的标签中间的每一个参数传递都有可能被利用. 1 2 3 4 5 6 7 8 9 10 11 12 13 <form id="form_search&qu

取代现有电商和实体店菜市场的新模式

本人发现了一种全新的商业模式,一种电商与实体完美结合的商业模式,但它与现有的O2O模式完全不同,它集中了电商和实体店的优点,又巧妙的解决了快递最后一公里效率低的问题,它不需要快递,成本因为摊薄反而大大地降低.它以极低的商品价格.极为方便的一站式的购物体验,能够取代现有的电商和实体店,也能取代菜市场和小摊小贩,还能取代农村大集.它将是我们所有人心目中最理想.最完美的购物模式. 我生长在生意人家庭,我父亲在我很小的时候就做各种小生意,像卖菜.食品.各种小商品等都做过.这使我对做生意有天生的敏感,也有

有趣的交互方式

不可否认,手机已经是我们生活中不可缺少的一部分,手机应用也在扮演的角色越来越重要.无聊的时候我们可以玩手机,联系远方的朋友我们也可以通过手机,抑或对学习知识.获取资讯有所裨益. 同时手机应用有不少有趣的交互方式,是我们值得思考和学习.它们中有哪些好玩的交互呢?我们又是如何通过手机来进行操作的? 摇一摇:摇摆的节奏 自从微信引入了摇一摇的交互方式后,立即四处风靡,各种应用纷纷推出各种基于摇一摇的功能:摇一摇更换皮肤.摇一摇推荐餐馆.摇一摇换歌等.有些应用结合的比较自然,还有一些则有些牵强附会.当然