Sploitus

Exploit for CVE-2025-30921

kitploit · 2026-09-04

Exploit Code

MARKDOWN85 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-DOTTAK-CVE-2025-30921
# CVE-2025-30921

## 1️⃣ コンポーネント種別

WordPress プラグイン

## 2️⃣ コンポーネント詳細

`コンポーネント名` Newsletters

`影響を受けるバージョン` <= 4.9.9.7

`コンポーネントスラッグ` newsletters-lite

`コンポーネントリンク` https://wordpress.org/plugins/newsletters-lite/

## 3️⃣ OWASP 2017: TOP 10

`脆弱性クラス` A3: インジェクション

`脆弱性種別` SQLインジェクション

## 4️⃣ 前提条件

管理者

## 5️⃣ **脆弱性の詳細**

### 👉 **概要**

Newsletters プラグイン バージョン 4.9.9.7 以下のダッシュボード(`/wp-admin/admin.php?page=newsletters`)で統計概要グラフを表示する際に、URL パラメータの入力検証とエスケープ処理が不十分なために SQL インジェクション脆弱性が発生します。

この脆弱性により、管理者権限を持つ攻撃者が、対象サイトのデータベース情報を取得することが可能です。

### 👉 **再現手順(PoC)**

  1. Newsletters プラグイン バージョン 4.9.9.7 以下がインストールされた WordPress サイトを用意します。

  2. Newsletters プラグインのダッシュボードメニュー(`/wp-admin/admin.php?page=newsletters`)に移動します。

![画像](https://assets.kitploit.com/production/public/readmes/35689/ee3d4ecc3ed080e1469b35c2d04026e06ef863445c8e801352daff5194edf978.png)

  3. ブラウザの開発者ツールを使用して、'Elements' タブで `action=wpmlwelcomestats&security=` を検索し、`security` の値を確認します。たとえば、検索結果が下図のように表示された場合は、`22b1ac0de6` をメモします。

root@kitploit:~
         
         // ...
         
         jQuery.getJSON(newsletters_ajaxurl + 'action=wpmlwelcomestats&security=22b1ac0de6', ajaxdata, function(json) {
         
         // ...
         

![画像](https://assets.kitploit.com/production/public/readmes/35689/b6edd90b769c30b460b9c37bd2a45731f4a49e03a26fef3ac3571c51b4d5dce7.png)

  4. メモした `security` の値を以下の URL パスの `<SECURITY VALUE>` 部分に入力し、その URL にリクエストを送信します。

root@kitploit:~
         
         http://localhost:8080/wp-admin/admin-ajax.php?action=wpmlwelcomestats&security=<SECURITY VALUE>&type=years&chart=bar&from=2024-12-31&to=2024-12-31&history_id=FOO%27+UNION+SELECT+(CONCAT((DATABASE()),%22-%22,(@@VERSION))),NULL+LIMIT+1,2+%23
         




### 👉 **追加情報(任意)**

#### [脆弱性の根本原因]

上記 PoC で SQL インジェクション脆弱性が発生する URL をリクエストすると、`/wp-content/plugins/newsletters-lite/wp-mailinglist-plugin.php` ファイル内の `ajax_welcomestats` 関数が呼び出されます。

このとき、リクエストパラメータ `history_id` は SQL クエリ文字列の条件句として直接参照され、変数 `$history_condition` として初期化されます。この変数は、エスケープ処理を一切行わずにデータベースクエリへ渡されます。

![画像](https://assets.kitploit.com/production/public/readmes/35689/d6dadfb6df3923bf829540c83bdd94de55d7ed375a7488bac3f782f43cc03b01.png)

したがって、URL パラメータ `history_id` に入力された値に対する検証やエスケープ処理がないため、SQL インジェクション脆弱性が発生します。(なお、URL パラメータ `from` および `to` も、入力検証とエスケープ処理の不備により、SQL インジェクション攻撃の影響を受けます。)

## 6️⃣ エクスプロイトデモ

![動画](https://assets.kitploit.com/production/public/readmes/35689/e56b38b5e75a1dfb4310026f22b538ef11054a55e2ba64466f011e78a5264fb6.jpg)

## 7️⃣ 参照

  * https://nvd.nist.gov/vuln/detail/CVE-2025-30921