ローカルファイルのインクルード

high Web App Scanning プラグイン ID 98125

概要

ローカルファイルのインクルード

説明

Web アプリケーションは、後でサーバーが必要とするファイルの場所を保存するために、パラメーター値を使用することがあります。

この例はエラーページでよく見られ、エラーページの実際のファイルパスがパラメーター値に保存されています (たとえば、「example.com/error.php?page=404.php」)。

パラメーター値 (ファイルへのパス) を同じサーバー上の別のリソースのパスで置き換えることができる場合にファイルインクルードが発生し、任意の、場合によっては制限された/機密のファイルを効果的に表示できるようになります。

スキャナーは、パラメーター値を別のリソースで置換して、サーバーにリソースの内容を応答内のクライアントに返させることが可能であることを検出しました。

ソリューション

インクルードするファイルの場所を作成する際には信頼できないデータを使用しないようにすることをお勧めします。
アプリケーションはデータを検証するために、ファイルに指定された値が許可されていることを確認する必要があります。これは、許可されたファイルのリストと照合し、パラメーター値をホワイトリストに登録することで達成できます。指定された値がホワイトリストのどの値とも一致しない場合、サーバーは標準エラーページにリダイレクトする必要があります。
動的コンテンツがリクエストされている一部のシナリオでは、信頼できるリソースのリストに対して検証を実行できない場合があるため、リストを動的にする (ファイルの変更に応じて更新する) か、フィルタリングを実行して無関係なユーザー入力 (セミコロンやピリオドなど) を削除し、「a-z0-9」のみを許可する必要があります。
また、機密ファイルを Web ルート内に保存せず、ディレクトリによって強制されるユーザー権限を適切なものにすることも推奨されます。

参考資料

https://www.owasp.org/index.php/PHP_File_Inclusion

プラグインの詳細

深刻度: High

ID: 98125

タイプ: remote

ファミリー: File Inclusion

公開日: 2017/3/31

更新日: 2023/8/9

スキャン テンプレート: api, full, pci, scan

リスク情報

VPR

リスクファクター: Medium

スコア: 6.2

CVSS v2

リスクファクター: High

基本値: 9

ベクトル: CVSS2#AV:N/AC:L/Au:N/C:C/I:P/A:P

CVSS スコアのソース: Tenable

CVSS v3

リスクファクター: High

基本値: 8.6

ベクトル: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L

CVSS スコアのソース: Tenable

参照情報