ローカルファイルインクルージョン(LFI)
ローカルファイルインクルージョン(LFI) とは何ですか?
ローカルファイルインクルージョン(LFI)サニタイズされない入力で選んだローカルファイルを、サーバーにインクルード・実行・表示させてしまう脆弱性。
ローカルファイルインクルージョン(LFI)は、Web アプリがユーザー指定のファイルパスを検証せずにインクルードするときに発生し、PHP・JSP・クラシック ASP などのスクリプト言語でよく見られます。攻撃者はソースコード・構成ファイル・ログを読み取れるほか、攻撃者制御のコンテンツを含むファイル(ログポイズニング、/proc エントリ、セッションファイル、コードが埋め込まれたアップロード画像など)をインクルードさせることでリモートコード実行へ昇格できます。LFI はディレクトリトラバーサルと重なる部分がありますが、ランタイムの include/require 関数を狙う点が特徴です。対策は、テンプレート名のホワイトリスト化、動的インクルードではなく安全なルーティング、正規化後のパス検証、リモート URL のインクルード無効化などです。
● 例
- 01
page=../../../var/log/apache2/access.log を受けるエンドポイントが、攻撃者が仕込んだ User-Agent 文字列を PHP として実行する。
- 02
?lang=es を用いる管理パネルで ?lang=../../etc/passwd を渡すとシステムユーザーが露見する。
● よくある質問
ローカルファイルインクルージョン(LFI) とは何ですか?
サニタイズされない入力で選んだローカルファイルを、サーバーにインクルード・実行・表示させてしまう脆弱性。 サイバーセキュリティの 攻撃と脅威 カテゴリに属します。
ローカルファイルインクルージョン(LFI) とはどういう意味ですか?
サニタイズされない入力で選んだローカルファイルを、サーバーにインクルード・実行・表示させてしまう脆弱性。
ローカルファイルインクルージョン(LFI) からどのように防御しますか?
ローカルファイルインクルージョン(LFI) に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
ローカルファイルインクルージョン(LFI) の別名は何ですか?
一般的な別名: LFI。