Shikata Ga Nai

Private? There is no such things.

XSS via Exif Data - The P2 Elevatorを訳してみた

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

 

f:id:ThisIsOne:20210812183857p:plain

 

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.ターゲットウェブサイトには、写真をアップロードするオプションがあって。

 

f:id:ThisIsOne:20210812185021p:plain

 

2.最初に通常のexif画像をアップロードして。

 exifデータの露出の脆弱性を確認することに。
 

f:id:ThisIsOne:20210812184953p:plain

下記が、アップロード中の画像で。

f:id:ThisIsOne:20210812184928p:plain

下記が、アップロードして公開された画像で。

 

f:id:ThisIsOne:20210812184902p:plain

3.画像をダウンロードするオプションがあったので、画像をダウンロードして。
 exifデータを確認することに。

f:id:ThisIsOne:20210812184835p:plain


下記が、Exifデータで。

f:id:ThisIsOne:20210812184807p:plain

4.Googleから通常の画像をダウンロードし、exifdataを確認して。

f:id:ThisIsOne:20210812184745p:plain

 

5.exiftoolを使用してXSSペイロードをexifデータとして画像に挿入して。

 exiftool -Comment='"><img src=x onmouseover=alert(document.domain)>' Jerry,jpg

 

f:id:ThisIsOne:20210812184722p:plain

 

6.画像をWebサイトにアップロードするとXSSのポップアップを取得できて。

 

f:id:ThisIsOne:20210812184701p:plain

 

影響 :

攻撃者がユーザのセッションを乗っ取ってアカウントを乗っ取る可能性があって。

保存されたものであって、画像は公開されているので。

より深刻になる可能性があって。

 

緩和 :

アップロードされた画像からexifデータ(メタデータ)を常に削除して。

exifデータを削除したくない場合は、メタデータの検証チェックが必要で。

メタデータ(exifdata)に悪意のあるペイロードが含まれているかどうかを確認して。

含まれている場合は削除する必要があり。

 

Best regards, (^^ゞ