リモートファイルのインクルード

critical Web App Scanning プラグイン ID 98126

概要

リモートファイルのインクルード

説明

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

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

リモートファイルインクルードは、パラメーター値 (サーバーによって呼び出されるファイルへのパス) をリモートリソースのアドレスで置き換えることができる場合に発生します (例: `yoursite.com/error.asp?page=http://anothersite.com/somethingBad.php`

場合によっては、サーバーはフェッチされたリソースを処理します。したがって、リソースに使用中のフレームワーク (ASP、PHP、JSP など) と一致するサーバー側コードが含まれている場合、そのリソースは Web アプリケーションの一部であるかのように実行される可能性があります。

スキャナーは、パラメーター値を外部リソースで置換してサーバーにフェッチさせ、その内容を応答に含めることが可能であることを検出しました。

ソリューション

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

参考資料

http://en.wikipedia.org/wiki/Remote_File_Inclusion

http://projects.webappsec.org/Remote-File-Inclusion

プラグインの詳細

深刻度: Critical

ID: 98126

タイプ: remote

ファミリー: File Inclusion

公開日: 2017/3/31

更新日: 2023/7/13

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

リスク情報

VPR

リスクファクター: High

スコア: 7.4

CVSS v2

リスクファクター: Critical

基本値: 10

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

CVSS スコアのソース: Tenable

CVSS v3

リスクファクター: Critical

基本値: 9.8

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

CVSS スコアのソース: Tenable

参照情報