Sploitus

Exploit for CVE-2025-22652

kitploit · 2026-09-06

Exploit Code

MARKDOWN104 lines
## 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`)からフォームを追加します。

![image](https://assets.kitploit.com/production/public/readmes/35684/507fc45084092cf1a454af89683b7b8fd60a8d437aa0318a3ff181dbc5bf862a.png)

  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)` にアクセスします。

![image](https://assets.kitploit.com/production/public/readmes/35684/16437be684521786eef4c0e8f058b5f46a0b378194838bc07face238b136e7c3.png)

  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クエリに直接挿入され、データベース上で実行されます。

![image](https://assets.kitploit.com/production/public/readmes/35684/56be0e78dfcf87e2e6c91dfe83b0b88bd39138cc60d96e8a58266207a870f9ce.png)

したがって、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サイトのアドレスと管理者の認証情報を入力します。

![image](https://assets.kitploit.com/production/public/readmes/35684/098b61255664239fa9b1c9079cec8ff633dd5a22278a6179d5f8dbe1f3e13640.png)

  2. 次に、以下のコマンドを入力してPoCコードを実行します。

> `Required module` requests

root@kitploit:~
         
         python poc.py
         

![image](https://assets.kitploit.com/production/public/readmes/35684/35af1ee72a341ab257ea615a0aa989756e1e09fe813346704bee8e9524f3d299.png)




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

![video](https://assets.kitploit.com/production/public/readmes/35684/90497c23e1e2806fe2489f0be5d47d79220e23641f59b0e56c55098656804936.jpg)

## 7️⃣ 参考文献

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