拿到一个待测页面,如何用PayloadsAllTheThings跑通XSS漏洞检测?
2026/9/7 10:36:30 网站建设 项目流程

拿到一个待测页面,如何用PayloadsAllTheThings跑通XSS漏洞检测?

【免费下载链接】PayloadsAllTheThingsA list of useful payloads and bypass for Web Application Security and Pentest/CTF项目地址: https://gitcode.com/GitHub_Trending/pa/PayloadsAllTheThings

XSS就是网页里混进了不属于它的脚本代码,在别人的浏览器里替攻击者执行。这篇教程直接拿开源仓库 PayloadsAllTheThings 里的 XSS Injection 模块开讲,按"定位输入点 → 选 payload → 验证执行 → 被拦了怎么绕"的顺序走一遍,顺带整理几件常用的 XSS检测工具。

第一步:把输入点和XSS类型定下来

打开页面,把"我的输入能出现在哪"列出来。三类XSS的区别在于代码走没走服务器:

  • 反射型:payload 藏在 URL 里,受害者一点链接就中招;
  • 存储型:payload 写进数据库,之后每个访问者都中招;
  • DOM型:代码从没过服务器,浏览器自己把页面改坏了。

检测时别偷懒用alert(1)。项目里给的建议是弹出document.domain,确认脚本到底在哪个域名下执行;存储型场景改用console.log,不然每执行一次都要手动关弹窗。

<script>console.log("test".concat(document.domain))</script>

第二步:按注入点选payload,再验证真实执行

payload 跟着注入点走,仓库 [XSS Injection/](https://link.gitcode.com/i/452e79b53f6ed165647e30c90b608e5d/blob/5443cbde384134094f25b1b440695757a2803d55/XSS Injection/?utm_source=gitcode_repo_files) 目录里按场景分好了类:

  • HTML 上下文:<img src=x onerror=alert(1)><svg onload=alert(1)>这类事件属性标签最常用;
  • JS 字符串上下文:避开引号,用括号包裹的函数调用;
  • URL 里:javascript:data:这类伪协议。

判断上下文的土办法:输入一个"<,看返回里谁被吃掉、谁原样出现,就知道你在 HTML、属性还是 JS 里。

![XSS注入payload绕过示例:javascript伪协议经编码混淆后绕过WAF过滤](https://raw.gitcode.com/GitHub_Trending/pa/PayloadsAllTheThings/raw/5443cbde384134094f25b1b440695757a2803d55/XSS Injection/Images/DwrkbH1VAAErOI2.jpg?utm_source=gitcode_repo_files)

验证"弹出来了"只是及格线。写报告时直接演示数据外带,比如把 cookie 发到你控制的地址,这样的 XSS漏洞检测结论才站得住脚。

第三步:payload被WAF拦截时,按过滤特征换思路

被拦别急着换词,先弄清过滤器在拦什么:

  • 编码层:HTML 实体、URL 编码、Unicode 转义改写关键词;
  • 协议层javascript://%0aalert()这种换行加注释的变形,专门骗基于特征的正则;
  • 大小写层<sCrIpt>对付只认全小写或全大写的规则;
  • 上下文层:换标签、换属性、引号成不成对。

不同 WAF 脾气差异很大,项目里专门有按 Cloudflare、Akamai、Incapsula 等厂商归档、经过实战验证的 payload 清单(见 3 - XSS Common WAF Bypass 和 1 - XSS Filter Bypass),照厂商清单挨个试比盲目堆词有效得多。

第四步:用XSS检测工具把手活交给脚本

手测慢,可以让工具代劳:

  • Dalfox:Go 写的,速度快、功能全,批量扫站首选;
  • XSStrike:名气大,但维护不太活跃;
  • XSpear:Ruby 实现,思路和 Dalfox 接近;
  • xsser:走无头浏览器,能检测真实执行。

这几款多数兼做盲 XSS:payload 埋进 Referer、User-Agent 或联系表单,等管理后台打开页面时才触发并回传结果。本地起个ruby -run -ehttpd就能当回显服务器用。

跑通"定位输入点、按上下文选 payload、照拦截特征换绕过手法"这三步,XSS漏洞检测的基本盘就立住了。完整 payload 库执行git clone https://link.gitcode.com/i/452e79b53f6ed165647e30c90b608e5d即可。动手前确认拿到书面授权,用无害 payload 验证,发现问题第一时间上报维护方。

【免费下载链接】PayloadsAllTheThingsA list of useful payloads and bypass for Web Application Security and Pentest/CTF项目地址: https://gitcode.com/GitHub_Trending/pa/PayloadsAllTheThings

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询