Hello there, ('ω')ノ
LFI - 興味深い調整を。
脆弱性:
LFI
記事:
https://shahjerry33.medium.com/lfi-an-interesting-tweak-9c5638dbdd1b
まとめ:
ローカル ファイル インクルージョン (LFI) は、攻撃者が Web サーバーに
任意のファイルを含めて実行できる Web アプリケーションの脆弱性の一種で。
攻撃者は、サーバ上のローカル ファイルである可能性がある悪意のある
ファイル パスをパラメータとして渡すことにより、
この脆弱性を利用することができ。
これにより、攻撃者は構成ファイルやユーザ資格情報などの機密情報を表示したり、
任意のコードを実行したり、サーバを完全に制御したりすることができて。
説明:
WEB-INF/ ディレクトリから web.xml ファイルをダウンロードできるプログラムの
1 つで、ローカル ファイル インクルージョン (LFI) の脆弱性を発見し。
ただし、バグは非常に単純で、少し調整するだけで。
Web サイトには、コースの詳細をダウンロードするオプションがあり、
ファイル名 = パラメータを介してサーバからコースの詳細を取得していて。
これは POST 要求で。
Web サイトは IIS サーバで実行されていたため、最初は機密ファイルを
ダウンロードすることを考えていて、それらはすべて制限されていましたが、
正常にダウンロードされた web.xml ファイルをダウンロードすることを考え。
ダウンロードしたファイルには admin のユーザ名とパスワードが
含まれていましたが、ログイン ポータルが見つからなかったため、
重大度がダウングレードされ。
この脆弱性をどのように見つけたかというと。
1.「コースの詳細をダウンロードする」オプションがあるウェブサイトに
アクセスして。
コース詳細をダウンロード
2.ボタンを右クリックし、[検査] をクリックしてハイパーリンクを確認し、
どこからファイルをフェッチしているかを確認して。
要素を検査
ハイパーリンクとfilename= Parameter
3.IIS サーバを使用していることはわかっていたので、
web.xml のパスを検索して。
WEB-INF/
4.?filename=/WEB-INF/web.xml へのパスを編集して。
web.xml
5.次に、ボタンをクリックしてファイルをダウンロードして開き、
資格情報を取得して。
ダウンロード
ダウンロード済み
クレデンシャル
なぜそれが起こったかというと
Web サイトは、ユーザ入力を処理する前に検証およびサニタイズしておらず。
ただし、機密ファイルの大部分はブロックされましたが、
特定のファイルをブロックすることは、理想的なソリューションではなく。
ユーザ入力は、処理する前に検証およびサニタイズする必要があって。
影響:
LFI の脆弱性は、Web サーバとそのデータの完全な侵害につながる可能性があるため
深刻な影響を与える可能性があり。
ただし、今回は主要な機密ファイルはすべてダウンロードが制限されていたため、
影響は web.xml ファイルのダウンロードに限定されていたため、影響は中程度で。
注:
取得した資格情報を使用してアクセスできるログイン パネルが見つかった場合、
重大度は高くなって。
計算されたCVSS:
ベクトル文字列 - CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
スコア - 5.3 (中)
緩和:
ユーザ入力が到着した場合は、入力の検証とサニタイズを行う必要があり。
サーバは、検証なしでユーザ入力を処理すべきではなく。
検証とサニタイズは、クライアント側とサーバ側で行う必要があり。
さらに、アプリケーションは、ユーザ入力を使用してファイル パスを
作成することを避け、代わりにホワイトリスト アプローチを使用して
許可されたファイル パスを指定する必要があり。
Web アプリケーション ファイアウォールは、LFI の脆弱性を悪用する試みを
検出してブロックするためにも使用できて。
Best regards, (^^ゞ