web-dev-qa-db-ja.com

ファイル名で画像をアップロードしてXSSを取得することは可能ですか?

私はそれが可能かどうかを知りたかっただけです...私が画像abc.jpegを持っていて、それを<img src=x onerror=alert(1)>.jpegなどのXSSベクトルに名前変更した場合、XSSを正常に生成するか、実際に別の方法がありますかこれを行う...

5
sheppard

このように脆弱なサイトが存在する可能性はありますか?もちろんです。サーバーがユーザー指定のファイル名を受け取り、それをエスケープせずにドキュメントに出力しようとすると、XSSが取得されます。他のユーザー提供データと同じです。

あなたが見ている特定のサイト、または実際に現在インターネット全体のサイトに脆弱性がありますか?私たちは前者を知る方法がなく、少なくとも私は後者を知りません。

ファイルのアップロードを攻撃する方法はtonあります。悪意のあるJavaScriptを含むHTMLファイルをアップロードし、サーバーからXSSに要求します。パストラバーサルを使用して他のファイルを上書きします。これにより、ユーザーデータを上書きしたり、サーバーを破棄したり、サーバーでコードを実行したりする可能性があります。スペースとシェルメタキャラクターを使用して、コマンドインジェクション(コード実行)を試行して取得します。サーバー側のコードファイル(PHP、ASPX、JSP、サーバーが使用するものすべて)をアップロードし、ページに移動して、サーバーでコードを実行できるかどうかを確認します。 Zip爆弾をアップロードし、サーバーのサービス拒否を試みます。非常に大きなファイルをアップロードし、サーバーがそれをすべてメモリに保持するかどうかを確認します。 so多くのオプションがあります!それは、サーバーが期待するファイルの種類、それを強制する方法(コンテンツタイプ?ファイル拡張子?マジックナンバー?)、適用されるサニタイズ、サーバーがファイルに対して行うこと、ユーザーが再度要求できるかどうか、およびユーザーがリクエストするとどうなるか文字通り他のすべての種類の入力と同じように。

8
CBHacking