南通颐猩文化传播有限公司

當前位置:首頁 >  站長 >  建站經(jīng)驗 >  正文

網(wǎng)站漏洞修復之Discuz X3.4遠程代碼執(zhí)行漏洞

 2019-07-16 12:15  來源: A5用戶投稿   我來投稿 撤稿糾錯

  域名預訂/競價,好“米”不錯過

近期我們SINE安全在對discuz x3.4進行全面的網(wǎng)站滲透測試的時候,發(fā)現(xiàn)discuz多國語言版存在遠程代碼執(zhí)行漏洞,該漏洞可導致論壇被直接上傳webshell,直接遠程獲取管理員權限,linux服務器可以直接執(zhí)行系統(tǒng)命令,危害性較大,關于該discuz漏洞的詳情,我們來詳細的分析看下。

discuz漏洞影響范圍:discuz x3.4 discuz x3.3 discuz x3.2,版本都受該網(wǎng)站漏洞的影響,漏洞產(chǎn)生的原因是在source目錄下function文件夾里function_core.php代碼里的cookies與語言language參數(shù)值并沒有詳細的進行安全過濾與檢測,導致可以插入惡意的代碼到數(shù)據(jù)庫,并遠程執(zhí)行惡意代碼,可獲取webshell權限。

discuz漏洞分析

我們來看下剛才產(chǎn)生漏洞的代碼,在第535行往下看,有一段代碼是這樣寫的,默認網(wǎng)站系統(tǒng)將緩存數(shù)據(jù)存儲在data文件夾里的template目錄中,緩存文件名的命名是由前面的discuz_lang參數(shù)進行控制來命令的,漏洞產(chǎn)生的原因就在這里。那這個discuz_lang參數(shù)的值是從來獲取來的呢? 我們跟進分析網(wǎng)站代碼,可以看到是從language語言這一變量里去獲取的值,也就是說,我們要利用這個網(wǎng)站漏洞,首先要去改變這個language的值,將惡意代碼插入到這個值當中去,POC代碼如下:

post數(shù)據(jù)到論壇的forum.php頁面,將post數(shù)據(jù)改為:Z3T2_2132_language=en'.phpinfo().';即可執(zhí)行php語句,整個漏洞的分析,我們可以看出discuz官方并沒有對post數(shù)據(jù)里的cookies值進行安全過濾與判斷,導致可以直接寫入language里惡意代碼并遠程執(zhí)行,可以構造一句話代碼,直接獲取webshell。

網(wǎng)站漏洞修復與安全防護方案

對discuz的版本進行全面的升級,在language參數(shù)值中進行全面的安全過濾,限制逗號,以及閉合語句的執(zhí)行,還有\(zhòng)斜杠都一些特殊惡意代碼進行攔截,必要的話對其進行轉(zhuǎn)義,如果對代碼不是太熟悉的話,也可以找專業(yè)的網(wǎng)站安全公司來進行漏洞修復,國內(nèi)也就SINE安全公司,綠盟,啟明星辰比較專業(yè)。再一個對discuz目錄的權限進行安全分配,限制data目錄的腳本執(zhí)行權限,防止PHP腳本的運行,最重要的就是做好網(wǎng)站的安全防護。

申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!

相關文章

熱門排行

信息推薦