當(dāng)前位置:首頁(yè) >  站長(zhǎng) >  建站經(jīng)驗(yàn) >  正文

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

 2019-07-16 12:15  來(lái)源: A5用戶投稿   我來(lái)投稿 撤稿糾錯(cuò)

  域名預(yù)訂/競(jìng)價(jià),好“米”不錯(cuò)過(guò)

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

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

discuz漏洞分析

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

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

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

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

申請(qǐng)創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!

相關(guān)文章

熱門排行

信息推薦