「Bypassing image file upload restrictions [SUPER EASY]」からアップロードの不備の脆弱性を学ぶ

ソース:

systemweakness.com

脆弱性:アップロード機能の不備

 

訳:

私は、クライアントの Web アプリケーションをテストして、潜在的なセキュリティの脆弱性を特定するという任務を負っていました。
このアプリケーションにはさまざまな機能があり、その 1 つがファイルのアップロード機能で。
この機能は、ユーザーが画像のみをアップロードできるように設計されてて。

 

ファイル アップロード機能のセキュリティを評価するために、まずその実装を調べることから始めまて。
アプリケーションがクライアント側とサーバー側の両方の検証を使用して、アップロードできるファイルの種類を画像形式のみに制限していることがわかりました。
ファイル名の変更、MIME タイプの変更、コンテンツ タイプ ヘッダーの調整など、ファイルのアップロード制限を回避するための複数の手法を試して。
ただし、これらの方法のいずれも、画像以外のファイルをアップロードすることはできませんで。

 

次に、悪意のある可能性のあるファイルを検出して処理するアプリケーションの機能もテストしたいと思い。
ファイルをアップロードしようとしました
eicar.com ウイルス対策ソフトウェアの有効性を検証するために使用されるテスト ファイルである。
ただし、アプリケーションは .com ファイル形式を受け入れなかったため、ファイルをアップロードできませんで。

 

EICARファイル:

EICARテストファイル (EICAR Standard Anti-Virus Test File) とは EICAR が開発したアンチウイルス (AV) ソフトウェアの応答をテストするためのファイルである。

wikipediaより)

 

追加の調査を行った結果、eicar.com ファイルの 16 進値ヘッダーを変更して、JPEG 画像のヘッダー署名である“FF D8 FF E0”を含めるというアイデアを思いつき。
この変更は、アプリケーションを欺いて、eicar.com ファイルがイメージ ファイルであると認識させることを目的としていて。
hexeditor (Kali のデフォルト) を使用すると、まさにそれができ。

 

hexeditor:

ファイルを16進数で表示・編集ができるエディターで。
以下のコマンドを実行して、ファイルを開いて編集し(Kalilinux)。

 

$ hexeditor <ファイル名>

 

  1. eicar.com ファイルをダウンロードしました。
  2. Hex Editor を使用してファイルを開きました。
  3. ファイルの先頭に 4 バイトのスペースが追加されました。
  4. JPEG ヘッダーを模倣するために、新しいバイト スペースに 16 進値「FF D8 FF E0」を入力します。

 

 

これにより eicar 署名が無効になるのではないかと心配し、新しいファイルをvirustotal にアップロードして、セキュリティ ベンダーによって依然として「悪意のある」ものとして検出されるかどうかを確認したところ、検出されまて
したがって、これは依然として有効なテストケースになり。

 

 

新しい eicar ファイルをアプリケーションにアップロードすると、ファイルが受け入れられ、eicar.com ウイルス シグネチャが検出されることなく、正常にアップロードでき。

この調査結果は、アプリケーションにセキュリティ制御とウイルス サンドボックスが欠如していることを浮き彫りにし。
悪意のあるペイロードがアップロードされた場合、影響はさらに大きくなる可能性があり。

 

ほなほな。