花魁直播高品质美女在线视频互动社区 - 花魁直播官方版

 歡迎來到素材無憂網(wǎng),按 + 收藏我們
登錄 注冊(cè) 退出 找回密碼

織夢(mèng)dedesql.class.php文件漏洞解決方法

時(shí)間: 2020-09-15 09:36 閱讀: 作者:素材無憂網(wǎng)

阿里云后臺(tái)提示織夢(mèng)dedesql.class.php文件變量覆蓋漏洞會(huì)導(dǎo)致SQL注入,可被攻擊者構(gòu)造惡意SQL語句,重置管理員密碼,寫入webshell等,進(jìn)而獲取服務(wù)器權(quán)限。下面告訴大家怎么修復(fù)這個(gè)漏洞:

首先說一下dedecms不安全的參數(shù)處理機(jī)制,這里我們看一下/include/common.inc.php代碼的第106行:

織夢(mèng)dedesql.class.php文件漏洞解決方法(圖1)

萬惡之源其實(shí)就在這里,基本上目前dede被發(fā)現(xiàn)的漏洞全都死在這里。我們可以看到,程序從GPC數(shù)組中取出名值對(duì)后,只是對(duì)$_v做了簡單的addslashes處理,就直接賦給了${$_k},實(shí)現(xiàn)了類似全局變量覆蓋的機(jī)制,設(shè)計(jì)的初衷是為了開發(fā)方便,但卻存在著嚴(yán)重的安全問題。PHP在經(jīng)歷了這么多年的更新?lián)Q代終于修補(bǔ)了register_globals問題,但是dede的這段代碼使php付出的努力全部白費(fèi)。

下面我們回歸漏洞。首先是/include/dedesql.class.php的第595-607行,

織夢(mèng)dedesql.class.php文件漏洞解決方法(圖2)

在執(zhí)行這段代碼之前,程序未初始化$arrs1和$arrs2這兩個(gè)數(shù)組。結(jié)合前面提到的dede不安全的參數(shù)處理機(jī)制,利用這段代碼我們可以覆蓋任意全局變量。例如在這個(gè)漏洞中,我們可以控制$GLOBALS['cfg_dbprefix']的值。

解決方案:

修改/include/dedesql.class.php頁面第595行,新增代碼如下

$arrs1 = array(); 
$arrs2 = array();
//特殊操作
        $arrs1 = array(); $arrs2 = array(); if (isset($global['arrs1']))
        {
            $v1 = $v2 = '';
            for ($i=0;isset($arrs1[$i]);$i++) 
            { 
                $v1 .= chr($arrs1[$i]);
            }
                        $v1 = $v2 = '';
            for ($i=0;isset($arrs2[$i]);$i++) 
            { 
                $v2 .= chr($arrs2[$i]);
            }
            $global[$v1] . = $v2; 
        }

 

版權(quán)聲明: 本站資源均來自互聯(lián)網(wǎng)或會(huì)員發(fā)布,如果侵犯了您的權(quán)益請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)刪除!謝謝!

轉(zhuǎn)載請(qǐng)注明: 織夢(mèng)dedesql.class.php文件漏洞解決方法

相關(guān)文章
模板推薦