ソース:
訳:
今日のトピックは、Symfony Web Framework Profiler とデバッグ モードが有効なバグに関するもので、複数の脆弱性が見つかります。
Symfony プロファイラーとは何ですか?
Symfony Profiler は、あらゆるリクエストの実行に関する詳細情報を提供する強力な開発ツールです。
Symfony Profiler の脆弱性とは何ですか?
実稼働環境でデバッグ機能を公開すると、サーバーの脆弱性が発生することがよくあります。
Symfony Web プロファイラー コンポーネントは非常に機密情報を公開し、攻撃者がアプリケーション ファイルを取得するために悪用する可能性のある危険な機能を提供します。
複数の脆弱性を入手するにはどうすればよいですか?
example.com というターゲット ドメインがあります (ドメインを使用してください)。
次に、ブラウザを開いて、example.com ドメインにアクセスします。
そして、wappalyzer拡張機能/アドオンをインストールします。
example.com が Symfony Web フレームワークを使用していることを発見しました。
次に、 dirsearchを開いて、Web サイト example.com をスキャンします。
「 app_dev.php」という興味深いファイルを見つけました。
HttpKernel コンポーネント : Symfony カーネルには、リクエストとレスポンスに関する情報を収集し、それらをトークンに関連付けるリクエスト プロファイラー コンポーネント (Symfony\Component\HttpKernel\Profiler) があります。
Web プロファイラー バンドルは、その名前が示すように、このデータにアクセスするための Web インターフェイスを _profiler/{token} パスで提供します。
ブラウザーでこの URL https://example.com/app_dev.php/_profiler/ を確認してみましょう。
デバッグモードが有効になっており、Symfony Profiler にアクセスするためのプロファイラートークンを取得していることがわかりました。
次に、設定メニューをクリックすると、phpinfo ファイルが表示されます。または、この URL を開くと、phpinfo ページが表示されます。
https://example.com/app_dev.php/_profiler/phpinfo
Symfony Debug ツールバーでは機密情報が公開される可能性のあるファイルの読み取りが許可されていることは知っていました。
Symfony アプリケーションから PHPStorm でファイルを開きます:
Symfony デバッグツールバーから直接 PHPStorm 内のファイルを開きたい場合は、使用できる巧妙なトリックがあります。
これは、コントローラーをすぐに見つけたい場合や例外が発生した場合に非常に役立ちます。
// /config/packages/framework.yml
フレームワーク:
IDE: “phpstorm://open?file=%%f&line=%%l”
次に、この URL https://example.com/app_dev.php/_profiler/open?file=にアクセスしてください。
「ファイルは読み取れません」というメッセージが表示されます。
Symfony Web フレームワークには、データベースのデフォルト設定ファイルの場所 (app/config/parameters.yml) があることがわかっています。
次に、このリンクを開きます https://example.com/app_dev.php/_profiler/open?file=app/config/parameters.yml
データベース、メールサーバーの資格情報、いくつかのAPIキーなどを見つけました。
必要に応じて、/open?file= file location の後に、このファイルの機密情報をチェックできます。
src/Kernel.php
public/index.php
config/bundles.php
config/routes.yaml
config/services.yaml
/_profiler/phpinfo
緩和:
APP_DEBUG を false に設定してデバッグ モードを無効にします。 運用環境ではデバッグ モードを無効にする必要があります。
ほなほな。