## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-DOTTAK-CVE-2025-22652
# CVE-2025-22652
## 1️⃣ コンポーネントタイプ
WordPress プラグイン
## 2️⃣ コンポーネント詳細
`コンポーネント名` Payment Forms for Paystack
`脆弱性のあるバージョン` <= 4.0.1
`コンポーネントスラッグ` payment-forms-for-paystack
`コンポーネントリンク` https://wordpress.org/plugins/payment-forms-for-paystack/
## 3️⃣ OWASP 2017: TOP 10
`脆弱性クラス` A3: インジェクション
`脆弱性タイプ` SQLインジェクション
## 4️⃣ 前提条件
管理者
## 5️⃣ **脆弱性の詳細**
### 👉 **簡単な説明**
Payment Forms for Paystack プラグインバージョン4.0.1以下では、支払いフォームの支払いリストを表示する際に、URLパラメータ `order` に対する入力検証とエスケープ処理が不十分なため、SQLインジェクションの脆弱性が存在します。これにより、管理者権限を持つ攻撃者は、対象サイトのデータベースからすべての情報を抽出できます。
この脆弱性では直接データのクエリはできませんが、Time-based SQL Injection 技術を使用してデータを抽出できます。
### 👉 **再現方法(PoC)**
1. Payment Forms for Paystack プラグインバージョン4.0.1以下がインストールされたWordPressサイトを用意します。
2. ルックアップを実行するにはPaystackフォームを追加する必要があるため、Paystackフォーム追加メニュー(`wp-admin/post-new.php?post_type=paystack_form`)からフォームを追加します。

3. フォームを追加したら、ショートコードを確認し、以下のURLのURLパラメータ `form` にそのショートコードの属性IDを挿入してからアクセスします。
root@kitploit:~
http://localhost:8080/wp-admin/edit.php?post_type=paystack_form&page=submissions&form=<Insertion Point>&orderby=&order=,+(select+sleep(5)+from+dual+where+1=1)
例えば、`[pff-paystack id="13"]` の場合、`http://localhost:8080/wp-admin/edit.php?post_type=paystack_form&page=submissions&form=13&orderby=&order=,+(select+sleep(5)+from+dual+where+1=1)` にアクセスします。

4. その結果、URLパラメータ `order` に挿入されたSQLインジェクションペイロードの条件句 `where 1=1` が常に真であるため、`sleep(5)` 関数が実行され、5秒後に応答が届くことを確認できます。
### 👉 **追加情報(オプション)**
#### [脆弱性の原因]
脆弱性が発生するURLをリクエストすると、ファイル `/wp-content/plugins/payment-forms-for-paystack/includes/classes/class-helpers.php` 内の `get_payments_by_id` 関数が呼び出されます。
このとき、URLパラメータ `order` は入力検証やエスケープ処理が行われずにSQLクエリに直接挿入され、データベース上で実行されます。

したがって、SQLインジェクションペイロード `, (select sleep(5) from dual where 1=1)` がURLパラメータ `order` に挿入されると、以下に示すSQLクエリが実行されます。このとき、ペイロード内の条件句が真か偽かによって応答時間に差が生じ、この時間差を利用してデータベースからデータを抽出できます。
root@kitploit:~
SELECT * FROM %i WHERE post_id = %d AND paid = %s ORDER BY %i , (select sleep(5) from dual where 1=1)
#### [PoCコードの実装と実行]
1. エディタでPoCコードを開き、WordPressサイトのアドレスと管理者の認証情報を入力します。

2. 次に、以下のコマンドを入力してPoCコードを実行します。
> `Required module` requests
root@kitploit:~
python poc.py

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

## 7️⃣ 参考文献
* https://nvd.nist.gov/vuln/detail/CVE-2025-22652