
CVE-2023-38545をローカルのcurlに対してテストするための概念実証
このリポジトリには、CVE-2023-38545脆弱性をテストするために設計された概念実証(PoC)が含まれています。この脆弱性はcurlユーティリティに影響し、特にバージョン7.69.0から8.3.1の間で、HTTPリダイレクトの処理に関連しています。
必要なソフトウェア: curl
PoCは主に2つのコンポーネントで構成されています:
既に使用可能なsocks5プロキシがある場合は、このステップはオプションです。
setup_socks5.shを実行します。
$ chmod +x setup_socks5.sh
$ ./setup_socks5.sh
これにより、必要な依存関係がインストールされ、ポート1080でSOCKS5プロキシサーバーがセットアップされます。
以下のコマンドを実行してHTTPサーバーを起動します:
$ python3 server.py
デバッグログを有効にしてサーバーを実行することもできます。
$ python3 server.py --debug
正常に実行されると、HTTPサーバーはポート8000で待機します。
まず、スクリプトを実行可能にします:
$ chmod +x cve202338545.sh
スクリプトは、--socks5-ipでsocks5プロキシアドレス、--http-ipでHTTPアドレスを受け取り、--DEBUGでデバッグログを出力するように設定できます。
$ ./cve202338545.sh --socks5-ip <ip> --http-ip <ip> --DEBUG # プロキシサーバーとHTTPサーバーの両方を指定
$ ./cve202338545.sh --socks5-ip <ip> # プロキシサーバーのみ指定
$ ./cve202338545.sh --http-ip <ip> # HTTPサーバーのみ指定
$ ./cve202338545.sh # プロキシサーバーとHTTPサーバーの両方がlocalhostにデフォルト設定されます
$ ./cve202338545.sh --DEBUG # プロキシサーバーとHTTPサーバーの両方がlocalhostにデフォルト設定され、デバッグが有効になります
これによりエクスプロイトが開始され、システムが脆弱か、脆弱でないか、またはテストが決定的でないかを示す出力が表示されます。
4つの応答状態があります:
このステップは、ステップ1でsetup_socks5.shを使用した場合のみ必要です。
SOCKS5プロキシサーバーをクリーンアップするには、次のコマンドを実行します:
$ ./cleanup.sh