欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

蚁剑客户端RCE挖掘过程及源码分析

来源:本站整理 作者:佚名 时间:2019-04-15 TAG: 我要投稿

事情的起因是因为在一次面试中,面试官在提到我的CVE的时候说了我的CVE质量不高。简历里那几个CVE都是大一水过来的,之后也没有挖CVE更别说高质量的,所以那天晚上在我寻思对哪个CMS下手挖点高质量CVE的时候,我盯上了蚁剑并挖掘到了一枚RCE,虽然漏洞的水平并不高但是思路和过程我觉得值得拿来分享一下。
 
Electron
Electron是由Github开发,用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一个开源库。 Electron通过将Chromium和Node.js合并到同一个运行时环境中,并将其打包为Mac,Windows和Linux系统下的应用来实现这一目的。
简而言之,只要你会HTML,CSS,Javascript。学习这门框架,你就能跨平台开发桌面应用程序,像VSCode,Typora,Atom,Github Desktop都是使用Electron应用进行跨平台开发。虽然Electron十分简单方便,但是我认为其存在很严重的安全问题
 
第一个蚁剑的洞
面完的当晚我正对着github的开源项目发呆,准备寻找一些开源项目进行审计,却不知不觉的逛到了历史记录蚁剑的项目,当我准备关闭的时候,一行说明引起了我的注意

我发现蚁剑是使用Electron进行开发的,这就说明了我可以进行Electron应用的漏洞挖掘,于是我抱着试试看的运气打开了蚁剑,并在最显眼的位置输


成功XSS!由于蚁剑用Electron开发,当前程序的上下文应该是node,于是我们可以调用node模块进行RCE
poc:
img src=# onerror="require('child_process').exec('cat /etc/passwd',(error, stdout, stderr)=>{
  alert(`stdout: ${stdout}`);
});">

 
另三个洞
成功RCE,那天晚上在和Smi1e师傅吹水@Smi1e,跟他聊到这个后,他发现shell管理界面也没有任何过滤

以上三个点都可以XSS造成RCE,poc和上面一样,就不做演示了,于是我把这些洞交了issue
但是结果是

被官方评为self-xss了,很难受,虽然蚁剑有1000个star,但是这个洞确实比较鸡肋,唯一可以利用的方式只有把自己的蚁剑传给别人让别人打开,这在实战中几乎是不可能的事情。
注:这四个洞所填的数据在电脑上是有储存的,位置在~/蚁剑源码目录/antData/db.ant文件中以JSON格式进行存储
所以理论上如果能替换别人电脑上的此文件也能造成RCE(但是都能替换文件内容了为什么还要这个方法来RCE干嘛)就很鸡肋
 
真-RCE的发现
就在我一筹莫展的时候,我随便点了一个shell

!!!!!!!!
虽然我以前从来不看报错,但在这个时候我十分敏感的觉得这个报错信息肯定有我可控的点,大概看了一番,发现这么一句话

[1] [2] [3]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载