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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2025-8110-gogs-poc — CVE-2025-8110 の PoC - Gogs におけるシンボリックリンク経由の任意ファイル書き込み | Kitploit
ツール/GitHubGitHub/shirouuu/cve-2025-8110-gogs-poc
特権昇格脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト学習と教育
GitHubshirouuu/cve-2025-8110-gogs-poc

CVE-2025-8110-gogs-poc

CVE-2025-8110 の PoC - Gogs におけるシンボリックリンク経由の任意ファイル書き込み

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2025-8110 — Gogs 任意ファイル書き込み (PoC)

Gogs における認証済み任意ファイル書き込みの概念実証です。 リポジトリの外部を指すシンボリックリンクを含むリポジトリをプッシュし、そのリンクの内容を API 経由で更新すると、 認証済みユーザーは Gogs を実行しているアカウントの権限でホスト上のファイルを上書きできます。

許可されたテストおよび教育目的に限ります。 自分が所有するシステム、または明示的な書面によるテスト許可を得た システムに対してのみ実行してください。使用方法については、あなた自身に責任があります。

仕組み

  1. 既存のアカウントで Gogs に認証します。
  2. ユーザー設定からアプリケーション (API) トークンを生成します。
  3. リポジトリを作成します。
  4. シンボリックリンク (malicious_link -> /path/on/host) を追加してプッシュします。
  5. Contents API に PUT を送信して malicious_link を更新します。Gogs はシンボリックリンクを辿り、 指定されたコンテンツを自身の権限でターゲットパスに書き込みます。Gogs が root で実行されている場合、 これは直接的な権限昇格のプリミティブとなります (例: /etc/sudoers.d/ にルールを仕込む)。

書き込みを実際にトリガーするのは API の PUT です。プッシュはシンボリックリンクを配置するだけです。

必要条件

  • Python 3.8+
  • PATH に git があること
  • 既存の Gogs アカウント (ターゲットでは登録が無効になっている場合があります)
root@kitploit:~
pip install -r requirements.txt

使用方法

root@kitploit:~
python3 exploit.py \
    -u http://127.0.0.1:3000 \
    --user <username> \
    --password '<password>' \
    --target /etc/sudoers.d/pwned \
    --payload '<username> ALL=(ALL) NOPASSWD: ALL'

--password を省略すると、コマンドラインで渡す代わりに安全にプロンプトが表示されます。

内部の Gogs インスタンスに到達する

Gogs はターゲット上で localhost にバインドされていることがよくあります。SSH のローカルポートフォワーディングを使用して、 自分のマシンに公開します (ターゲットに合わせてポートを調整してください):

root@kitploit:~
ssh -L 3000:127.0.0.1:3000 user@target
# then point the exploit at http://127.0.0.1:3000

書き込みの検証

実行が成功したら、ホスト上で (該当ユーザーとして) 確認します:

root@kitploit:~
cat /etc/sudoers.d/pwned
sudo -l

sudoers ルールを書き込んだ場合、/etc/sudoers.d/ 内のファイルは有効であり、sudo が認識するための適切な パーミッションを持つ必要があることに注意してください。

メモ / トラブルシューティング

  • auto_init が HTTP 500 を返す — スクリプトは空のリポジトリを作成し、ローカルの git init + push で 内容を投入するフォールバックを行います。
  • プッシュが拒否される (non-fast-forward) — スクリプトはリモートと整合させて再試行します。 master と main の違いも処理します。
  • CSRF トークンが見つからない — 通常はターゲット/ポートが間違っている (別のサービスに接続している) か、 セッションが認証されていないことを意味します。

緩和策

Contents API でシンボリックリンクを検証する Gogs リリースにアップグレードしてください。多層防御として、 Gogs を root で実行しないようにし、リポジトリのストレージを分離してください。

ライセンス

MIT — LICENSE を参照してください。

ツールをダウンロード