關于ThinkPHP framework 任意代碼執(zhí)行漏洞預警

最近官方發(fā)布了一個安全補丁,官方表述是:該URL安全漏洞會造成用戶在客戶端偽造URL,執(zhí)行非法代碼。
可是貌似大多數開發(fā)者和使用者并沒有注意到此漏洞的危害性,應者了了,更不用說有多少人去升級了。隨后我對其進行了分析,發(fā)現此問題果然是一個非常嚴重的問題,只要使用了thinkphp框架,就可以直接執(zhí)行任意php代碼。特此發(fā)帖預警各位。
我們來分析一下官方的補丁:
/trunk/ThinkPHP/Lib/Core/Dispatcher.class.php
125 - $res = preg_replace('@(w+)'.$depr.'([^'.$depr.'/]+)@e', '$var['\1']="\2";', implode($depr,$paths));
125 + $res = preg_replace('@(w+)'.$depr.'([^'.$depr.'/]+)@e', '$var['\1']='\2';', implode($depr,$paths));
這個代碼是把pathinfo當作restful類型url進行解析的,主要作用是把pathinfo中的數據解析并合并到$_GET數組中。
然而在用正則解析pathinfo的時候,主要是這一句:
$res = preg_replace('@(w+)'.$depr.'([^'.$depr.'/]+)@e', '$var['\1']="\2";', implode($depr,$paths));
這里明顯使用了preg_replace的/e參數,這是個非常危險的參數,如果用了這個參數,preg_replace第二個參數就會被當做php代碼執(zhí)行,作者用這種方式在第二個參數中,利用PHP代碼給數組動態(tài)賦值。
'$var['\1']="\2";'
而這里又是雙引號,而雙引號中的php變量語法又是能夠被解析執(zhí)行的。因此,攻擊者只要對任意一個使用thinkphp框架編寫的應用程序,使用如下方式進行訪問,即可執(zhí)行任意PHP代碼:
index.php/module/action/param1/${@print(THINK_VERSION)}
由于是雙引號執(zhí)行,這里為了保險起見,不給出更有危害性的代碼,利用這個還是需要點技巧的。
總之這個問題非常嚴重,找了一下,發(fā)現目前沒有修補漏洞的網站還是很多的。而ThinkPHP框架的特征其實非常好識別,有意者直接寫個scanner進行掃描也未必不可能。
為了不造成更大損失,特地發(fā)帖希望引起各位使用thinkphp做開發(fā)的同學關注。盡早升級官方的安全補丁
作者:GaRY
相關文章
徹底關閉win10、win11系統(tǒng)自帶的windows defender殺毒功能(圖文詳解)
這篇文章主要介紹了徹底關閉win10、win11系統(tǒng)自帶的windows defender殺毒功能的詳細方法,這樣后續(xù)才能使用一些軟件2024-09-30火絨能恢復被刪除的文件嗎? 火絨恢復被當成病毒刪除文件的方法
我們進行電腦磁盤清理的時候,偶爾會出現被殺毒軟件誤刪除的情況,對于這種誤刪除的情況我們可以用火絨來進行恢復,想知道如何找回來,這里給朋友們分享火絨軟件恢復誤殺文2024-05-16電腦怎么關閉所有廣告彈窗? 一招關掉所有廣告包括360安全衛(wèi)士彈窗
電腦總是會出現各種廣告,該怎么禁止展示廣告呢?今天我們分享一招關掉所有廣告彈窗,包括360安全衛(wèi)士彈出的全部廣告窗口2024-05-09電腦360ai辦公如何關閉? 360安全衛(wèi)士ai辦公的關閉方法
電腦右下角總是出現ai圖標,誤點后會出現360ai辦公,想要關掉ai辦公圖標,該怎么操作呢?下面我們我們總結了多種解決辦法,詳細請看下文介紹2024-05-09怎么關閉360AI大會員彈窗廣告提示? 360安全衛(wèi)士ai大會員提醒關閉方法
360安全衛(wèi)士總是彈出ai大會員的推廣廣告,想要關閉這個彈窗,該怎么操作呢?我們點擊360設置中心,點擊彈窗設置,彈窗設置拉倒底,關閉AI大會員提醒2024-05-09火絨安裝不上怎么回事 安裝火絨安全軟件提示驅動版本不匹配的解決辦法
有時候安裝火絨安全軟件時,會跳出“驅動版本不匹配,重啟電腦即可修復重啟”的提示界面,會有小伙伴不知道如何操作,可以先根據提示升級版本,然后啟動試試2024-02-20火絨ip黑名單怎么添加ip段? 火絨ip黑名單功能的使用方法
使用電腦的時候有用戶想要限制指定IP進出,那么在火絨安全中心中怎么開啟此功能和添加IP黑名單呢?下方是關于如何使用火絨安全軟件添加ip黑名單的具體操作方法2024-02-20- 文件哈希運算是指通過特定的算法將文件內容轉化為固定長度的哈希值,用來嚴重我們從網上上下載的文件是否與官方提供的一致,因為很多情況下官方容易會被惡意修改掛馬等2024-02-08
專業(yè)級文件MD5、SHA-256/512算法支持的校驗工具(文件哈希校驗器集合)
下面給大家推薦幾款好用的免費的sha1、SHA-256校驗工具軟件,網上下載的文件不知道是否被修改過,那么就需要這樣的工具了,需要的小伙伴們來了解一下2024-02-08魯大師被檢測為病毒怎么辦? win11魯大師顯示為病毒的處理方法
魯大師是一款專業(yè)的電腦硬件檢測工具,win11系統(tǒng)安裝完魯大師工具之后,卻被系統(tǒng)安全防護功能識別為病毒,對此魯大師被win11識別為病毒怎么辦呢?具體請看下文介紹2025-03-29