WordPress插件YITH WooCommerce Wishlist SQL注入漏洞
字数 1155 2025-08-18 11:37:02
YITH WooCommerce Wishlist SQL注入漏洞分析与防护指南
漏洞概述
YITH WooCommerce Wishlist插件在2.2.0以下版本存在SQL注入漏洞,该插件已被超过50,000个WordPress网站安装使用。此漏洞允许攻击者在特定条件下执行恶意SQL查询,可能导致用户敏感数据泄露甚至整个WordPress安装被攻陷。
受影响范围
- 插件版本:2.2.0以下版本(特别是2.1.2版本确认存在)
- 数据库系统:MySQL版本低于5.7的服务器风险更高
- 使用场景:启用了免费"用户注册"功能的站点风险更大
漏洞技术细节
漏洞位置
漏洞存在于includes/class.yith-wcwl-shortcode.php文件的第523行,是get_products()函数的一部分,该函数用于返回特定用户的所有wishlist元素。
漏洞成因
- 输入验证缺失:插件未对用户输入的
$limit变量进行严格过滤 - SQL拼接风险:攻击者可通过控制
$limit变量注入恶意SQL代码
攻击条件
攻击者需要满足以下所有条件才能利用此漏洞:
- 分页值必须设置为"yes"
- count变量必须大于1(存储特定用户的wishlist元素数量)
- limit变量必须被设置
攻击途径
攻击者可以通过以下步骤利用此漏洞:
- 创建一个用户帐户
- 调用漏洞短代码
yith_wcwl_wishlist - 构造恶意请求控制
$limit变量
漏洞影响
成功利用此漏洞可能导致:
- 数据库敏感信息泄露(如用户凭证哈希、电子邮件等)
- 通过特定配置危害整个WordPress安装
- 服务器被完全控制(视数据库权限而定)
防护措施
紧急措施
- 立即更新插件:将YITH WooCommerce Wishlist插件升级到2.2.0或更高版本
- 使用WAF防护:如果无法立即升级,建议部署以下防护:
- Sucuri防火墙
- 其他可靠的Web应用防火墙(WAF)
- 数据库加固:
- 将MySQL升级到5.7或更高版本
- 限制数据库用户权限
长期防护建议
-
安全开发实践:
- 对所有用户输入进行严格验证和过滤
- 使用预处理语句(Prepared Statements)替代SQL拼接
- 实施最小权限原则
-
监控与审计:
- 定期审计插件代码
- 监控异常数据库查询
- 保持安全更新意识
参考资源
- 原始漏洞报告:Sucuri安全公告
- 漏洞披露时间:2018年1月20日
- 漏洞编号:未提供CVE编号
总结
YITH WooCommerce Wishlist插件的SQL注入漏洞是一个严重的安全威胁,特别是对于使用较旧版本的用户。网站管理员应立即采取行动升级插件或实施替代防护措施,同时应建立长期的安全更新机制,以防止类似漏洞带来的风险。