該漏洞為後台任意檔案刪除,需要有管理員的許可權,所以說危害非常小
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...