Cacti命令执行漏洞 (CVE-2022-46169)
一、漏洞背景
Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。
在本漏洞中,攻击者可通过控制由get_nfilter_request_var()函数检索的参数$poller_id,以及构造local_data_ids参数,满足poller_item =POLLER_ACTION_SCRIPT_PHP条件,触发proc_open()函数,从而导致命令执行。
二、影响版本
Cacti < 1.2.23
三、漏洞分析
从漏洞补丁可以看出,本次漏洞点主要存在于lib/functions.php、remote_agent.php,2个文件中。
Merge pull request from GHSA-6p93-p743-35gf · Cacti/cacti@7f0e163 · GitHub
1.未授权访问的问题
remote_agent中对于远程IP取值来自于get_client_addr函数。追踪get_client_addr函数,可以发现位于functions.php内。
如果存在http_addr_headers数组内的代理IPheader,这个函数会从以上header内顺序取第一个合法的IP地址作为客户端IP。这样,攻击者就可以使用XFF进行客户端IP伪造。
有一个鸡肋的点在于, 这里校验了通过client_addr取得hostname必须和cacti安装的本机或节点的hostname一致。如果伪造client_addr为127.0.0.1的情况下,默认的情况下client_name取出来的是localhost,会和本机名不一致,除非本机名字就是起的localhost。
如果在本机名字非localhost的情况下,client_addr需要暴力猜解本机的内网IP地址,或者其他设备列表内的IP地址。
2.远程命令执行的问题。
当设备action等于POLLER_ACTION_SCRIPT_PHP时,由于 poller_id参数未进行任何校验,可以直接进入proc_open函数进行命令执行。
item['action']参数来源于:
-
$items = db_fetch_assoc_prepared('SELECT *
-
FROM poller_item
-
WHERE host_id = ?
-
AND local_data_id = ?',
-
array($host_id, $local_data_id));
所以攻击者可以通过local_data_ids参数来控制筛选出action==2的项目 ,使得函数可以进入POLLER_ACTION_SCRIPT_PHP块执行。当然,由于设备项目在添加时,需要选择相应的设备模板才会出现action=2的情况,local_data_ids参数也是需要靠暴力猜解才会猜解出action=2的项目。这也是鸡肋的一个点。
四、最终POC
这里以执行curl命令为例。
五、修复方案
目前Cacti官方已发布安全补丁,但暂未发布版本更新,建议受影响用户关注官方更新或参考官方补丁代码进行修复:
https://github.com/Cacti/cacti/commit/7f0e16312dd5ce20f93744ef8b9c3b0f1ece2216
https://github.com/Cacti/cacti/commit/b43f13ae7f1e6bfe4e8e56a80a7cd867cf2db52b
注意:对于在 PHP < 7.0 下运行的 1.2.x 实例,还需要进一步更改:
https://github.com/Cacti/cacti/commit/a8d59e8fa5f0054aa9c6981b1cbe30ef0e2a0ec9
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfhicik
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01