web-dev-qa-db-ja.com

ディレクトリトラバーサルとファイルインクルードの違い

タイトルがすべてを物語っていると思います。ディレクトリトラバーサルとファイルインクルードの脆弱性の間に明らかな違いはないようです。

しかし、www.cvedetails.comでは次の分類を使用しているため、多少の違いがあると思います。

 Bypass a restriction or similar 
 Cross Site Scripting 
 Denial of service 
 Directory Traversal 
 Execute arbitrary code on vulnerable system 
 Gain Privileges
 Http Response Splitting 
 Memory Corruption 
 Obtain information 
 Overflow vulnerability (includes stack and heap based overflows and other overflows) 
 Cross site request forgery(CSRF) 
 File Inclusion 
 Sql Injection

これらの中で、ディレクトリトラバーサルファイルインクルードの両方に気付くことができるため、何らかの形で異なる必要があります。

9
eleanor

基本的に、ファイルインクルードの脆弱性があると、リソースが読み込まれ、現在のアプリケーションのコンテキストで実行されるになるという違いがあります。一方、ディレクトリトラバーサルの脆弱性では、リソースを読み取ることしかできません。

11
Gerry

ファイルの例:

  • ファイルAは../../../../configure.php

  • ファイルBはindex.phpです

ディレクトリをトラバースしてファイルA(たとえば)にアクセスしてその内容を読み取ることができることと、ローカルでホストされているかリモートであるかにかかわらず、ファイルAのコンテンツを別のファイルのページ実行に含めることができることには違いがあります。 。

攻撃者がファイルAにアクセスできるようにするディレクトリトラバーサルが存在する場合、少なくともファイルの内容を読み取ることはできません。ただし、ファイルBに次の行がある場合(または同様の場合):

if ( isset( $_GET[ 'id' ] ) ) include( $_GET[ 'id' ] . ".php" );

次に、ファイルAのコンテンツをbase64エンコードに含め、ローカルファイルインクルージョン攻撃と呼ばれる方法でファイルBに含めることができます。

index.php?id=php://filter/read=convert.base64-encode/resource=../../../../config

それが違いを理解する方法です。

6
Taipo

LFIとディレクトリトラバーサルの主な違いは次のとおりです。

[〜#〜] lfi [〜#〜]:ITにはファイルを実行する機能があります。システムに存在するシェルコードまたは他のローカルファイルである可能性があります

Directory Traversal:ファイルをトラバースするだけなので、読み取ることしかできません。ファイルを実行することはできません。これは機密情報開示の一種です

1
Praveen

パストラバーサル(AKAドットドットスラッシュ):ドットドットスラッシュ攻撃(../)としても知られるこの攻撃は、通常、移動を許可する文字によって実行されますディレクトリツリーの上に。シーケンスの前に../を付けると、ファイルを選択するディレクトリよりも階層的に上位のディレクトリにアクセスできる場合があります。

ファイルの包含:この攻撃の脆弱性は、含めるファイルの場所に応じて、リモートとローカルに分けられます。この攻撃により、ローカル/リモートでファイルにアクセスして実行することができます。

0
Meshari Mahdi