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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
POC-CVE-2023-32681 — CVE-2023-32681 の POC | Kitploit
ツール/GitHubGitHub/hardikmodha/poc-cve-2023-32681
脆弱性分析エクスプロイトウェブセキュリティ学習と教育ラボと実践Archived
GitHubhardikmodha/poc-cve-2023-32681

POC-CVE-2023-32681

CVE-2023-32681 の POC

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2023-32681 の POC

これは CVE-2023-32681 の Python 3 実装であり、requests バージョン 2.30.0 以下を使用するクライアントに影響を与えます。

https://www.rfc-editor.org/rfc/rfc9110.html#section-15.4 に従い、サーバーが 3xx リダイレクトを発行する場合、ユーザーエージェントはリクエストを変更し、特定のヘッダーとフィールドをリクエストから削除する必要があります。

これらのフィールドの詳細は https://www.rfc-editor.org/rfc/rfc9110.html#section-15.4-5 にあります。この CVE に関連する部分を以下に強調表示しました。

image

requests バージョン 2.30.0 以下では、"https" へのリダイレクトの処理中に "Proxy-Authorization" ヘッダーが削除されず、その結果、リダイレクト先のサーバーにプロキシ認証情報が漏洩していました。

詳細は以下を参照してください。

  • https://www.cve.org/CVERecord?id=CVE-2023-32681
  • https://security.snyk.io/vuln/SNYK-PYTHON-REQUESTS-5595532

前提条件

  • HTTP(S) サーバー用の有効な証明書セット。mkcert を使用してローカルで証明書を生成できます。
  • Go v1.19
  • Python 3.x
  • virtualenv (オプション)

概要

  1. Go で実装されたプロキシサーバー。ポート 8080 でプロキシサーバーを起動し、ベーシック認証が必要です。POC の目的のため、同じファイル内にハードコードされたユーザー名とパスワードが定義されています。
  2. Go で実装された HTTP(S) サーバー。2 つのサーバーを起動します。
    • ポート 443 で待受するリダイレクトサーバーと、ポート 4431 で待受するエコーサーバー。
    • リダイレクトサーバーは /redirect ルートを定義し、トラフィックを 4431 で動作している 2 番目のサーバーにリダイレクトします。
    • エコーサーバーは /echoHeaders ルートを定義します。このルートは、リクエストで受信したヘッダーをクライアントに返します。
  3. POC Python スクリプト。ポート 443 で動作しているリダイレクトサーバーにプロキシ経由のリクエストを発行し、サーバーが返すレスポンスを出力します。
  4. レスポンスに Proxy-Authorization ヘッダーが含まれている場合、その requests バージョンは "CVE-2023-32681" に対して脆弱であるとされます。

手順

  1. このリポジトリをクローンします。
  2. server/main.go 内の certFile と keyFile 変数を更新します。
  3. go run server/main.go コマンドを実行して HTTP(S) サーバーを起動します。これにより、ポート 443 と 4431 で待受する 2 つのサーバーが起動します。
  4. go run proxy/main.go コマンドを実行してプロキシサーバーを起動します。これにより、ポート 8080 でプロキシサーバーが起動します。
  5. Python スクリプトを実行するための依存関係をインストールします pip3 install -r script/requirements_request_2_30_0.txt
  6. python3 script/poc.py を実行して POC スクリプトを実行し、出力を確認します。サーバーがレスポンスで "Proxy-Authorization" ヘッダーを返していることがわかります。サーバーは受信したヘッダーをログにも出力します。
  7. 次に、requests バージョンを 2.31.0 以上にアップグレードするか、pip3 install -r script/requirements_request_2_31_0.txt を実行します。
  8. 再度 python3 script/poc.py を実行して POC スクリプトを実行し、出力を確認します。サーバーのレスポンスに "Proxy-Authorization" ヘッダーが含まれていないことがわかります。これはサーバーログでも確認できます。

スクリーンショット

プロキシサーバー

proxy_server_logs

requests==2.30.0

requests_2_30_0_script_output requests_2_30_0_server_output

requests==2.31.0

requests_2_31_0_script_output requests_2_31_0_server_output
ツールをダウンロード