關(guān)于ThinkPHP framework 任意代碼執(zhí)行漏洞預(yù)警
最近官方發(fā)布了一個安全補(bǔ)丁,官方表述是:該URL安全漏洞會造成用戶在客戶端偽造URL,執(zhí)行非法代碼。
可是貌似大多數(shù)開發(fā)者和使用者并沒有注意到此漏洞的危害性,應(yīng)者了了,更不用說有多少人去升級了。隨后我對其進(jìn)行了分析,發(fā)現(xiàn)此問題果然是一個非常嚴(yán)重的問題,只要使用了thinkphp框架,就可以直接執(zhí)行任意php代碼。特此發(fā)帖預(yù)警各位。
我們來分析一下官方的補(bǔ)丁:
/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當(dāng)作restful類型url進(jìn)行解析的,主要作用是把pathinfo中的數(shù)據(jù)解析并合并到$_GET數(shù)組中。
然而在用正則解析pathinfo的時候,主要是這一句:
$res = preg_replace('@(w+)'.$depr.'([^'.$depr.'/]+)@e', '$var['\1']="\2";', implode($depr,$paths));
這里明顯使用了preg_replace的/e參數(shù),這是個非常危險的參數(shù),如果用了這個參數(shù),preg_replace第二個參數(shù)就會被當(dāng)做php代碼執(zhí)行,作者用這種方式在第二個參數(shù)中,利用PHP代碼給數(shù)組動態(tài)賦值。
'$var['\1']="\2";'
而這里又是雙引號,而雙引號中的php變量語法又是能夠被解析執(zhí)行的。因此,攻擊者只要對任意一個使用thinkphp框架編寫的應(yīng)用程序,使用如下方式進(jìn)行訪問,即可執(zhí)行任意PHP代碼:
index.php/module/action/param1/${@print(THINK_VERSION)}
由于是雙引號執(zhí)行,這里為了保險起見,不給出更有危害性的代碼,利用這個還是需要點(diǎn)技巧的。
總之這個問題非常嚴(yán)重,找了一下,發(fā)現(xiàn)目前沒有修補(bǔ)漏洞的網(wǎng)站還是很多的。而ThinkPHP框架的特征其實(shí)非常好識別,有意者直接寫個scanner進(jìn)行掃描也未必不可能。
為了不造成更大損失,特地發(fā)帖希望引起各位使用thinkphp做開發(fā)的同學(xué)關(guān)注。盡早升級官方的安全補(bǔ)丁
作者:GaRY
相關(guān)文章

徹底關(guān)閉win10、win11系統(tǒng)自帶的windows defender殺毒功能(圖文詳解)
這篇文章主要介紹了徹底關(guān)閉win10、win11系統(tǒng)自帶的windows defender殺毒功能的詳細(xì)方法,這樣后續(xù)才能使用一些軟件2024-09-30
火絨能恢復(fù)被刪除的文件嗎? 火絨恢復(fù)被當(dāng)成病毒刪除文件的方法
我們進(jìn)行電腦磁盤清理的時候,偶爾會出現(xiàn)被殺毒軟件誤刪除的情況,對于這種誤刪除的情況我們可以用火絨來進(jìn)行恢復(fù),想知道如何找回來,這里給朋友們分享火絨軟件恢復(fù)誤殺文2024-05-16
電腦怎么關(guān)閉所有廣告彈窗? 一招關(guān)掉所有廣告包括360安全衛(wèi)士彈窗
電腦總是會出現(xiàn)各種廣告,該怎么禁止展示廣告呢?今天我們分享一招關(guān)掉所有廣告彈窗,包括360安全衛(wèi)士彈出的全部廣告窗口2024-05-09
電腦360ai辦公如何關(guān)閉? 360安全衛(wèi)士ai辦公的關(guān)閉方法
電腦右下角總是出現(xiàn)ai圖標(biāo),誤點(diǎn)后會出現(xiàn)360ai辦公,想要關(guān)掉ai辦公圖標(biāo),該怎么操作呢?下面我們我們總結(jié)了多種解決辦法,詳細(xì)請看下文介紹2024-05-09
怎么關(guān)閉360AI大會員彈窗廣告提示? 360安全衛(wèi)士ai大會員提醒關(guān)閉方法
360安全衛(wèi)士總是彈出ai大會員的推廣廣告,想要關(guān)閉這個彈窗,該怎么操作呢?我們點(diǎn)擊360設(shè)置中心,點(diǎn)擊彈窗設(shè)置,彈窗設(shè)置拉倒底,關(guān)閉AI大會員提醒2024-05-09
火絨安裝不上怎么回事 安裝火絨安全軟件提示驅(qū)動版本不匹配的解決辦法
有時候安裝火絨安全軟件時,會跳出“驅(qū)動版本不匹配,重啟電腦即可修復(fù)重啟”的提示界面,會有小伙伴不知道如何操作,可以先根據(jù)提示升級版本,然后啟動試試2024-02-20
火絨ip黑名單怎么添加ip段? 火絨ip黑名單功能的使用方法
使用電腦的時候有用戶想要限制指定IP進(jìn)出,那么在火絨安全中心中怎么開啟此功能和添加IP黑名單呢?下方是關(guān)于如何使用火絨安全軟件添加ip黑名單的具體操作方法2024-02-20
MD5 、SHA1、SHA256 文件哈希校驗(yàn)方法分享
文件哈希運(yùn)算是指通過特定的算法將文件內(nèi)容轉(zhuǎn)化為固定長度的哈希值,用來嚴(yán)重我們從網(wǎng)上上下載的文件是否與官方提供的一致,因?yàn)楹芏嗲闆r下官方容易會被惡意修改掛馬等2024-02-08
專業(yè)級文件MD5、SHA-256/512算法支持的校驗(yàn)工具(文件哈希校驗(yàn)器集合)
下面給大家推薦幾款好用的免費(fèi)的sha1、SHA-256校驗(yàn)工具軟件,網(wǎng)上下載的文件不知道是否被修改過,那么就需要這樣的工具了,需要的小伙伴們來了解一下2024-02-08
魯大師被檢測為病毒怎么辦? win11魯大師顯示為病毒的處理方法
魯大師是一款專業(yè)的電腦硬件檢測工具,win11系統(tǒng)安裝完魯大師工具之后,卻被系統(tǒng)安全防護(hù)功能識別為病毒,對此魯大師被win11識別為病毒怎么辦呢?具體請看下文介紹2025-03-29









