Discuz X V3 4後台任意檔案刪除

2022-06-05 02:15:08 字數 1568 閱讀 1188

該漏洞為後台任意檔案刪除,需要有管理員的許可權,所以說危害非常小

docker、vulhub-master

啟動環境docker-compose up -d

安裝discuz!x v3.4 資料庫名設定為db

訪問後台並登入http://your-ip/admin.php

進入論壇->模組管理->編輯板塊

使用burp攔截」提交「的資料。

在請求包中新增如下引數&replybgnew=../../../robots.txt&delreplybg=1

傳送請求包,前後對比一下,發現目錄中的檔案(robots.txt)已經被刪除了

首先看我們的請求

admin.php?action=forums&operation=edit&fid=2&replybgnew=../../../robots.txt&delreplybg=1
admin.php中接收了action引數後經過actioncpfile處理後返回檔案路徑幷包含。

actioncpfile函式

function admincpfile($action) 

返回admincp_forums.php,漏洞出現在該檔案中

漏洞**

if(!$multiset) 

$_get['replybgnew'] = '';

......

......

}

第乙個if語句

$multiset為0進入if語句,由491行**可知multiset引數預設為0,所以只要不傳入該引數或者置空即可

第二個if語句

get引數delreplybg其中利用了parse_url來判斷有沒有host,來確保get引數是replybgnew而不是url

$_g['setting']['attachurl'的值為data/attachment/common/[replybgnew],這個就是可控的刪除路徑

需要有管理員的許可權,危害很小,目前網上沒找到修復

關於 0x3f3f3f3f 的問題

0x3f3f3f3f是乙個很有用的數值,它是滿足以下兩個條件的最大整數。1 整數的兩倍不超過 0x7f7f7f7f,即int能表示的最大正整數。2 整數的每8位 每個位元組 都是相同的。我們在程式設計中經常需要使用 memset a,val,sizeof a 初始化乙個陣列a,該語句把數值 val ...

0x3f3f3f3f(無窮大數)

一般定義無窮大數都是inf 99999999,或者0x7f ff ff ff,但是有的時候inf過大,雖然保證了沒有數超過它,但是在需要加上乙個數的時候,inf a可能會導致溢位,最終變成乙個負數。而0x3f3f3f3f的數量級也1e9的,一般題不會給超過1e9的數 在把它當成無窮大的時候,兩個0x...

Python3物件導向 3 異常(3)異常作用

當丟擲異常時,看起來好像立即停止了程式的執行。丟擲異常之後的所有 都不會執行,除非處理了這一異常,程式將會退出並給出錯誤資訊。def no return print i am about to raise an exception raise exception this is always rai...