4月13日消息,日前烏雲漏洞報告平臺爆料稱,ThinkPHP框架存在「URI取值任意代碼執行」漏洞(https://zone.wooyun.org/index.php?do=view&id=44),黑客可藉此在網站上執行任意PHP代碼,甚至獲取伺服器管理員權限,同在此伺服器上的其他網站也可能受到牽連。對此,360網站安全檢測平臺第一時間加入檢測規則,並向存在該漏洞的網站發送了報警郵件及修復建議。
360網站安全檢測平臺服務網址:https://webscan.360.cn
ThinkPHP是一款擁有6年歷史的優秀開源PHP框架,自2006年誕生以來,應用者逐漸遍及電子商務、教育培訓、金融、政府等多個領域,包括大型門戶網站遊戲論壇、著名服裝品牌網上商城等,都使用該PHP框架搭建。儘管此前ThinkPHP官方已發布修復URI漏洞的補丁,卻未引起網站管理者的普遍重視,至今仍有大批網站因此存在被黑風險。
圖1:攻擊者只需提交特殊的URL即可在網站上執行任意php代碼
360網站安全檢測平臺分析認為,該漏洞源自ThinkPHP框架整理URI變量的流程:源碼此處補丁的是一個perg_replace函數,此函數用於執行正則表達式的搜索和替換,因為第一個參數如果使用了「e」修飾符,那麼第二個參數將會被當做PHP代碼執行。
圖2:官方補丁將雙引號改為單引號
其中,代碼中$paths為URI處理到最後變量取值部分,通過「/」切割後進行正則替換,其中\1為變量名,\2為匹配到的變量值,而這個地方用到了雙引號來解析PHP變量進行動態賦值,導致黑客可以利用一些攻擊技巧通過控制變量值的方式直接執行任意PHP代碼(如圖3、圖4所示),所以官方補丁將這對雙引號改為單引號(如圖2所示)
圖3:攻擊者甚至可以利用php執行系統命令
鑑於該漏洞覆蓋用戶群體的廣泛性及危害的嚴重性,360網站安全檢測第一時間加入了檢測規則,並根據不同「URL_MODEL」設置情況下的各種傳參模式都進行了細緻的規則定製,可以準確有效地發現使用ThinkPHP站點的安全漏洞。
目前,360網站安全檢測平臺已向存在漏洞的網站發送了報警郵件,同時建議所有未升級的ThinkPHP用戶立即下載安裝官方補丁https://code.google.com/p/thinkphp/source/detail?spec=svn2904&r=2838,或直接升級ThinkPHP官方最新版本https://thinkphp.cn/,以規避攻擊威脅。
關於360網站安全檢測平臺
360網站安全檢測平臺是國內首個集網站漏洞檢測網站掛馬監控網站篡改監控於一體的免費檢測平臺,擁有全面的網站漏洞庫及蜜罐集群檢測系統,能夠第一時間協助網站檢測修復漏洞。2011年,360網站安全監測平臺曾協同360團購導航,為國內數百家主流團購網站提供了免費網站漏洞檢測服務並提供修復建議,提高了團購網站整體安全水平。
360網站安全檢測平臺:https://webscan.360.cn