溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

thinkcmf網(wǎng)站最新漏洞的修復(fù)方法

發(fā)布時(shí)間:2021-11-12 17:00:44 來源:億速云 閱讀:285 作者:柒染 欄目:安全技術(shù)

thinkcmf網(wǎng)站最新漏洞的修復(fù)方法,針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。

近段時(shí)間發(fā)現(xiàn)很多APP程序用的是thinkcmf,此程序源碼存在getshell漏洞,我們Sine安全緊急對(duì)此高危漏洞進(jìn)行了分析和漏洞修復(fù),攻擊者可以通過構(gòu)造特定的請(qǐng)求包get請(qǐng)求即可在遠(yuǎn)程服務(wù)器上執(zhí)行任意腳本代碼。

根據(jù)index.php中的配置,項(xiàng)目路徑為application,打開 Portal 下的 Controller 目錄,選擇一個(gè)控制類文件。

thinkcmf網(wǎng)站最新漏洞的修復(fù)方法

發(fā)現(xiàn)他的父類為Common\Controller\HomebaseController。

在HomeBaseController中加入如下測(cè)試代碼

thinkcmf網(wǎng)站最新漏洞的修復(fù)方法

ThinkPHP是一套基于MVC的應(yīng)用程序框架,被分成三個(gè)核心部件:模型(M)、視圖(V)、控制器(C)。

由于添加的代碼在控制器中,根據(jù)ThinkPHP框架約定可以通過a參數(shù)來指定對(duì)應(yīng)的函數(shù)名,但是該函數(shù)的修飾符必須為Public, 而添加的代碼正好符合該條件。

可以通過如下URL進(jìn)行訪問,并且可以添加GET參數(shù)arg1傳遞給函數(shù)。

cmfx-master/?a=test_public&arg1=run%20success

HomeBaseController類中有一些訪問權(quán)限為public的函數(shù),重點(diǎn)關(guān)注display函數(shù).看描述就是可以自定義加載模版,通過$this->parseTemplate 函數(shù)根據(jù)約定確定模版路徑,如果不符合原先的約定將會(huì)從當(dāng)前目錄開始匹配。

然后調(diào)用THinkphp Controller 函數(shù)的display方法

/**

* 加載模板和頁面輸出 可以返回輸出內(nèi)容

* @access public

* @param string $templateFile 模板文件名

* @param string $charset 模板輸出字符集

* @param string $contentType 輸出類型

* @param string $content 模板輸出內(nèi)容

* @return mixed

*/

public function display($templateFile = '', $charset = '', $contentType = '', $content = '', $prefix = '') {

parent::display($this->parseTemplate($templateFile), $charset, $contentType,$content,$prefix);

}

再往下就是調(diào)用Think View的fetch方法,這里的TMPL_ENGINE_TYPE 為Think, 最終模版內(nèi)容解析在ParseTemplateBehavior中完成

如下調(diào)用即可加載任意文件

http://127.0.0.1:81/cmfx-master/?a=display&templateFile=README.md

五、執(zhí)行漏洞

thinkcmf網(wǎng)站最新漏洞的修復(fù)方法

網(wǎng)站漏洞修復(fù)建議

通過此次審計(jì)代碼發(fā)現(xiàn)問題的重點(diǎn)是對(duì)display 和 fetch 函數(shù)的修飾符模板函數(shù)進(jìn)行修改,如果對(duì)程序代碼不熟悉的話建議聯(lián)系專業(yè)的網(wǎng)站安全公司來修復(fù)漏洞,國(guó)內(nèi)做的比較專業(yè)的如Sinesafe,綠盟,啟明星辰,等等,對(duì)此很多app調(diào)用此程序的api接口源碼,建議大家遇到此問題首先要進(jìn)行全面的網(wǎng)站漏洞檢測(cè)和滲透測(cè)試,來達(dá)到事先預(yù)防此類攻擊帶來的危害。

關(guān)于thinkcmf網(wǎng)站最新漏洞的修復(fù)方法問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI