这几天在挖Electron的XSS,挖了下自己平时在用的一个md笔记。发现Boostnote客户端v0.11.15版本iframesrc属性没做过滤,存在XSS。

poc

尝试看能不能xss2rce,直接执行没执行成功。应该是nodeIntegration做了限制,后来在imagemlt师傅的提示下,注意到boostnote的markdown渲染是一个iframe。

iframe

看到iframe中有全局的parent,进一步调试利用~

parent

发现虽然在iframe中无法直接用require构造RCE,但仍然可以向父节点递归找到全局可应用的Webview。

rce

最终成功RCE。

xss2rce

尝试了另外几个使用相同插件的md笔记,有几个同样可以成功XD。同时,水了人生中第一个CVE纪念一下~

相关链接

  1. NVD - CVE-2019-12136
  2. 安全性,原生能力和你的责任 Electron
  3. BoostIO Boostnote 0.11.15 iFRAME Element cross site scripting
  4. Electronegativity-A-Study-Of-Electron-Security