Hello there, ('ω')ノ
Exifデータを介したXSSを。
脆弱性:
保存されたXSS
記事:
https://shahjerry33.medium.com/xss-via-exif-data-the-p2-elevator-d09e7b7fe9b9
概要 :
サーバがアップロードされた画像から。
exifデータを削除していなかったターゲットWebサイトで。
このexifデータの脆弱性を見つたので報告を。
Exifタグ:
EXIFは「ExchangeableImageFileFormat」の略で。
このタイプの情報はTIFF仕様に従ってフォーマットされていて。
JPG、TIFF、PNG、JP2、PGF、MIFF、HDP、PSP、XCF画像のほかに。
多くのTIFFベースのRAW画像、さらにはAVIやMOVにも含まれていて。
https://github.com/exiftool/exiftool
EXIFメタ情報は、画像内の各画像ファイルディレクトリ(IFD)に編成されていて。
Exif IFDは、Exif固有の属性情報を記録するためのタグのセットで。
画像には多くのexifタグがありますが、攻撃に使用したものの1つで。
UserCommentタグ、またはImageDescriptionタグとも呼ばれていて。
今回は、「Comment」タグについてのみ説明することに。
ExifユーザのCommentタグは、ImageDescription以外の。
キーワードやコメントを画像に書き込むために使用されて。
ImageDescriptionタグの文字コード制限なしで。
UserCommentタグを読み取るExif / DCFリーダーによって処理されて。
画像のメタデータを処理する多くの画像処理ライブラリがあって。
このメタデータには、exifデータとも呼ばれる画像のメタタグも含まれていて。
この場合、Exif / DCFリーダーであるこの画像処理ライブラリは。
アップロード時に画像のexifタグをサニタイズしていなかったので。
XSSが発生したわけで。
この場合、exifデータを削除するか、exifタグをスキャンして。
XSSペイロードをHTMLエンティティに変換する必要があって。
さて、この脆弱性の見つけ方は以下のとおりで。
1.ターゲットウェブサイトには、写真をアップロードするオプションがあって。
2.最初に通常のexif画像をアップロードして。
exifデータの露出の脆弱性を確認することに。
下記が、Exifデータで。
5.exiftoolを使用してXSSペイロードをexifデータとして画像に挿入して。
exiftool -Comment='"><img src=x onmouseover=alert(document.domain)>' Jerry,jpg
6.画像をWebサイトにアップロードするとXSSのポップアップを取得できて。
影響 :
攻撃者がユーザのセッションを乗っ取ってアカウントを乗っ取る可能性があって。
保存されたものであって、画像は公開されているので。
より深刻になる可能性があって。
緩和 :
アップロードされた画像からexifデータ(メタデータ)を常に削除して。
exifデータを削除したくない場合は、メタデータの検証チェックが必要で。
メタデータ(exifdata)に悪意のあるペイロードが含まれているかどうかを確認して。
含まれている場合は削除する必要があり。
Best regards, (^^ゞ