- 資訊首頁(yè) > 網(wǎng)絡(luò )安全 >
- ThinkPHP5.0.遠程命令執行的漏洞分析及修復方法
這篇文章主要介紹“ThinkPHP5.0.遠程命令執行的漏洞分析及修復方法”,在日常操作中,相信很多人在ThinkPHP5.0.遠程命令執行的漏洞分析及修復方法問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對大家解答”ThinkPHP5.0.遠程命令執行的漏洞分析及修復方法”的疑惑有所幫助!接下來(lái),請跟著(zhù)小編一起來(lái)學(xué)習吧!
ThinkPHP 5.0.x:5.0.x ~ 5.0.23
官方在 GitHub 中進(jìn)行了更新:版本更新
升級代碼到最新版本 5.0.24
同時(shí)建議用戶(hù)在線(xiàn)上環(huán)境中關(guān)閉 debug 模式
該漏洞危害高,影響嚴重:
漏洞主要出現在 ThinkPHPRequest 類(lèi)的 method 方法中 (thinkphp/library/think/Request.php)
Request 類(lèi)可以實(shí)現對 HTTP 請求的一些設置,其中成員方法 method 用來(lái)獲取當前請求類(lèi)型,其定義如下:
當傳入的參數為 false 的時(shí)候,會(huì )取配置項 var_method,其默認值為_(kāi)method
$this->{$this->method}($_POST); 通過(guò) post 參數_method 可以實(shí)現對當前類(lèi)的任意方法進(jìn)行調用。
通過(guò)調用當前類(lèi)的構造方法可以覆蓋任意成員屬性的值:
這里通過(guò)覆蓋 filter 屬性,filter 屬性保存了用于全局過(guò)濾的函數。
但是在 thinkphp5.0.23 中,會(huì )對 filter 值重新賦值為空,導致無(wú)法利用。
在 thinkphp/library/think/App.php 中開(kāi)啟 debug 的時(shí)候會(huì )調用 Request 類(lèi)的 param 方法。
在 thinkphp/library/think/Request.php param 方法中會(huì )調用到 method 方法, 并將參數設置為 true。
當參數為 true 的時(shí)候,會(huì )調用 server 方法
會(huì )走到 input 方法,通過(guò)之前方法覆蓋 server 成員屬性值為 array(),input 方法代碼如下:
最終會(huì )調用 filterValue 形成任意代碼執行:
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站