當(dāng)前位置:首頁(yè) >  站長(zhǎng) >  網(wǎng)站運(yùn)營(yíng) >  正文

thinkphp 漏洞修復(fù)方案之6.X版本的代碼漏洞案例分析

 2020-01-30 16:38  來源: A5用戶投稿   我來投稿 撤稿糾錯(cuò)

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

大年初五,根據(jù)我們SINE安全的網(wǎng)站安全監(jiān)測(cè)平臺(tái)發(fā)現(xiàn),thinkphp官方6.0版本被爆出高危的網(wǎng)站代碼漏洞,該漏洞可導(dǎo)致網(wǎng)站被植入網(wǎng)站木馬后門文件也叫webshell,具體產(chǎn)生的原因是session ID參數(shù)值這里并未對(duì)其做詳細(xì)的安全過濾與效驗(yàn),導(dǎo)致可以遠(yuǎn)程修改POST數(shù)據(jù)包將session的值改為惡意的后門代碼,發(fā)送到服務(wù)器后端并生成PHP文件直接生成,可導(dǎo)致網(wǎng)站被攻擊,服務(wù)器被入侵,關(guān)于該thinkphp漏洞的詳情,我們SINE安全來跟大家分析一下。

thinkphp是國(guó)內(nèi)用的比較多的一套開源系統(tǒng),采用的是php+mysql架構(gòu)開發(fā),基于該框架的開發(fā)較容易與維護(hù),深受很多站長(zhǎng)以及企業(yè)的青睞,2018-2019年thinkphp的漏洞就層出不窮,像之前的3.23版本,ThinkPHP 5.0緩存漏洞、ThinkPHP 5.0.10、ThinkPHP5.0.12、ThinkPHP5.0.13、ThinkPHP5.0.23、thinkphp 5.0.22版本都存在這漏洞。

目前的新版本6.0存在著session任意文件上傳漏洞,我們SINE安全工程師來進(jìn)行詳細(xì)的安全分析與代碼的安全檢測(cè),再index控制器里我們發(fā)現(xiàn)可以寫入session來進(jìn)行控制代碼,首先我們看下代碼:如下圖所示

以上代碼是用來獲取name的參數(shù)值并將值里的內(nèi)容寫到session中去,我們來本地搭建一套TP6.0版本的環(huán)境,來測(cè)試一下生成的session文件會(huì)到哪里去。http://測(cè)試網(wǎng)址/tp6/public/index.php/index/testsession?name=當(dāng)get 訪問該頁(yè)面的時(shí)候就會(huì)在網(wǎng)站根目錄下的runtime文件夾里的session目錄下生成一個(gè)PHP文件,我們可以看得到。那到底是那段代碼導(dǎo)致可以寫入文件名的呢?我們仔細(xì)看下TP框架里的store.php代碼,追蹤到253到270行這里,調(diào)用了一個(gè)參數(shù)來進(jìn)行寫入文件的操作,writefile($filename,$data)我們來追蹤下這個(gè)函數(shù)接下來使用到是哪里的值,看下圖:

原來是追蹤到了sessionID值里去了,也就是POST數(shù)據(jù)包里的phpsessid,導(dǎo)致該值可以在遠(yuǎn)程進(jìn)行偽造與篡改,漏洞利用截圖:

經(jīng)過我們SINE安全的網(wǎng)站安全測(cè)試發(fā)現(xiàn),thinkphp的漏洞利用條件是服務(wù)器開啟session功能,默認(rèn)代碼是不開啟的,有些第三方開發(fā)公司在給客戶網(wǎng)站以及平臺(tái)開發(fā)的時(shí)候會(huì)用到session功能來控制用戶的登錄狀態(tài)以及權(quán)限所屬判斷,可導(dǎo)致網(wǎng)站被攻擊,被篡改,數(shù)據(jù)庫(kù)內(nèi)容被修改等攻擊情況的發(fā)生,在這里我們建議網(wǎng)站的運(yùn)營(yíng)者對(duì)該代碼漏洞進(jìn)行修復(fù),對(duì)session的判斷以及寫入做攔截與效驗(yàn),不允許直接.php文件的session值寫入,如果您對(duì)代碼不是太懂的話也可以找專業(yè)的網(wǎng)站安全公司來幫您修復(fù)網(wǎng)站漏洞

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

相關(guān)標(biāo)簽
網(wǎng)站被黑
網(wǎng)站漏洞

相關(guān)文章

熱門排行

信息推薦