PayloadsAllTheThings XSS payload 绕过实战指南:5类WAF过滤绕过思路
PayloadsAllTheThings XSS payload 绕过实战指南5类WAF过滤绕过思路【免费下载链接】PayloadsAllTheThingsA list of useful payloads and bypass for Web Application Security and Pentest/CTF项目地址: https://gitcode.com/GitHub_Trending/pa/PayloadsAllTheThings过滤规则明明配好了script全都拦掉可请求发出去弹窗还是弹了。WAF 管理员不知道自己的规则漏在哪一环这是做 XSS payload 绕过的典型场景不需要正面击穿过滤只需要利用过滤和浏览器之间的理解差异。下面是基于开源仓库 PayloadsAllTheThings 的 XSS Injection 模块整理的一套打法覆盖常见的几类绕过方向、多上下文构造和盲注检测。 资源图谱中的位置它是干什么的PayloadsAllTheThings 是一个持续更新的开源 payload 合集覆盖 XSS、SQL 注入、SSRF、反序列化等几十个安全类别。它的 XSS Injection 模块不按 payload 堆砌组织而是按过滤类型归位大小写、标签黑名单、单词黑名单、onxxxx 事件黑名单、空格过滤、各类编码逐类列出对应手法还收录了对 Cloudflare、Akamai、Incapsula 等 WAF 的真实绕过记录附带日期和作者。定位上它是手法查表 案例档案和自动化工具互补更适合手动分析某个 payload 为什么被拦。 搭好由浅入深的学习路线先分清三类 XSS判断路径完全不同反射型恶意代码放在 URL 参数里受害者点链接才触发服务端无留存存储型代码持久化在服务端任何人访问该页面都触发能在服务端日志里查到DOM 型客户端 JS 直接改写 DOM请求根本不经过服务端最难排查动手前先判断注入点属于哪类反射型看参数回显存储型看入库与缓存DOM 型看页面 JS 源码。类型不同验证手段完全不一样。按编号顺序读模块里的四份文档仓库把 XSS 拆成四份编号文档递进关系很清楚1 - XSS Filter Bypass逐条过滤规则大小写、黑名单、编码、事件属性的单点绕过2 - XSS Polyglot同一段字符串在多个上下文都成立3 - XSS Common WAF Bypass针对具体 WAF 的实战案例4 - CSP BypassContent-Security-Policy 启用后如何继续执行代码新手从 1 读起再对照 3 找到自己目标用的 WAF 类型文档 2 属于组合技巧理解 1 之后再看。组装组合payload 加上回调基础设施单个 payload 只是半成品。仓库的方法论章节强调完整 PoC用 data grabber 把 cookie 或 token 发回自己域名或用 UI redressing 把页面替换成假登录框这样的漏洞报告才能被安全团队接受。盲 XSS 同理把指向自己域名的 script 埋进联系表单、工单字段、Referer、User-Agent再等回调触发。 单模块实战过滤和浏览器如何对 javascript: 产生分歧javascript 伪协议是最经典的绕过方向仓库用一张控制台截图把差异讲得很清楚直接赋值a.href javascript:alert()时a.protocol解析为javascript:改成javascript://:%0aalert()后protocol 解析结果变成了:。过滤器通常按整串匹配javascript:变形之后规则不再命中但浏览器点击时仍会把剩余部分当脚本执行。这类理解差就是 WAF 过滤绕过的共同来源。单词黑名单同理。黑名单匹配alert这样的完整单词字符串拼接就能漏过去eval(alert(0)); setTimeout(alert(2));仓库在代码求值类目下列了一整族写法Function 构造器、Set.constructor、new Function 模板串原理都一样让敏感字面量不以明文出现。最上层是多上下文 payload。同一段字符串在不同上下文里会被解释成不同的东西 onclickalert(1)//button onclickalert(1)// */ alert(1)//在 HTML 属性上下文里 onclickalert(1)生效在 JS 上下文里//之后的内容变成注释在标签上下文里button 又能重新打开一个新标签。polyglot payload 的构造不是玄学就是把多个上下文的解释叠在同一段字符串上。 新手容易踩的四个坑1. 弹窗弹了但弹的是 self-XSS现象payload 在自己的管理面板里执行了受害者侧没有触发原因执行的是攻击者自己的上下文不是受害者的正确做法确认数据流会到达受害者的页面在受害者上下文中验证执行2. payload 被拦只会换下一批 payload现象试了几十个 payload 全被拦没有进展原因没搞清过滤器拦在哪一层是 URL 编码层、字符层还是参数层正确做法逐字符对比服务端回显的内容定位过滤层后再选绕过方向3. 只看响应页面漏掉盲 XSS现象响应页没有任何异常就判定安全收工原因payload 可能只在管理面板、站点统计或 Referer 日志里执行正确做法先埋回调探针用一行 HTTP 服务在自己域名听回调再决定是否部署盲 XSS 检测4. 把 payload 清单当爆破字典现象从清单里随机挑条目逐个试原因注入点上下文HTML 主体、属性、JS、URL没有先确定正确做法先判断上下文再挑对应的 payload 族命中率会高很多 搭配三个检测工具XSStrikePython 框架把仓库过滤绕过章节的常见手法自动化适合想快速试过滤绕过又不想手写 payload 的人DalfoxGo 语言编写单二进制、速度快适合对一批 URL 参数做初筛ezXSS轻量盲 XSS 回调服务适合响应里看不到回显、只能等回调的长期监听场景合规边界动手前三条只在拿到书面授权的目标上开工绕过手法和攻击手法是同一套东西用 alert() 或回调自己域名这类无害方式验证不向第三方服务传输受害者的 cookie 或 token发现的绕过结论和复现步骤及时同步给目标安全团队测试记录留档备查下次同事抱怨过滤规则配好了还是弹打开仓库 XSS Injection 模块的 WAF bypass 章节在 Burp 的 Repeater 里把javascript://:%0A这个变体亲手试一遍就能看出弹窗的原因。【免费下载链接】PayloadsAllTheThingsA list of useful payloads and bypass for Web Application Security and Pentest/CTF项目地址: https://gitcode.com/GitHub_Trending/pa/PayloadsAllTheThings创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考