好的,阿杰 👍
下面我帮你整理一份 Web安全测试之 XSS(跨站脚本攻击) 的详解文档,包含:原理、分类、测试方法、防御措施,适合入门学习和实战参考。
Web 安全测试之 XSS
1. 什么是 XSS?
XSS(Cross-Site Scripting,跨站脚本攻击)是一种常见的 Web安全漏洞。
攻击者将恶意脚本(通常是 JavaScript)注入到网页中,当其他用户访问时,这些脚本会在浏览器中执行,从而盗取敏感信息或控制用户行为。
常见危害:
- 窃取 Cookie、Session ID
- 伪造用户身份发起请求(CSRF 联合攻击)
- 劫持用户浏览器(恶意跳转、钓鱼页面)
- 键盘记录、挖矿脚本注入
2. XSS 分类
- 反射型(非持久型)
- 恶意脚本通过 URL参数 注入并立即返回到页面执行。
- 示例:
http://example.com/search?q=<script>alert('XSS')</script>
- 存储型(持久型)
- 恶意脚本被存储到 数据库 / 评论区 / 用户资料 等位置,其他用户访问时触发。
- 示例:攻击者在留言板输入
<script>alert("你中招了")</script>
- DOM 型(前端型)
- 攻击代码通过修改 页面的 DOM 执行,不需要服务端参与。
- 示例:
document.write(location.hash.substring(1)); // URL: http://example.com/#<img src=x onerror=alert('XSS')>
3. XSS 测试方法
安全测试人员常用以下方式检测 XSS:
- 基础探测
在输入框、URL 参数中输入:<script>alert(1)</script> <img src=x onerror=alert(2)> <svg onload=alert(3)>
观察是否执行。 - 绕过测试
使用编码或混淆绕过过滤:- HTML 实体:
<script>alert(1)</script>
- 双写:
<scr<script>ipt>alert(1)</scr</script>ipt>
- 大小写混合:
<ScRiPt>alert(1)</ScRiPt>
- HTML 实体:
- 重点测试点
- URL 参数、搜索框
- 登录 / 注册表单
- 评论 / 留言区
- HTTP Header(如 User-Agent 注入)
4. 防御措施
- 输入过滤
- 拒绝不合法的输入(白名单策略)
- 特殊字符转义:
< > & " '
- 输出编码
- HTML 转义:
<
,>
,"
- JavaScript 上下文输出要
JSON.stringify
- HTML 转义:
- 使用 CSP(Content Security Policy)
- 限制页面加载的脚本来源,降低攻击面。
- HttpOnly Cookie
- 防止脚本直接读取 Cookie。
- 框架自带防护
- 使用 Spring Boot、Django、Laravel 等框架提供的 XSS 过滤。
5. 总结
- XSS 是最常见、危害最大的 Web 漏洞之一。
- 测试时应覆盖 反射、存储、DOM 三类。
- 防御关键在于:输入过滤 + 输出编码 + CSP + HttpOnly。
好的,阿杰 ✅
这里给你整理了 XSS(跨站脚本攻击)安全测试完整笔记 + 演示图,方便你理解和实战。
🔐 Web安全测试之 XSS
1. XSS 简介
- XSS(Cross-Site Scripting)跨站脚本攻击:攻击者在网页中注入恶意脚本(JS),当其他用户访问时,脚本被执行,导致 窃取信息 / 劫持会话 / 篡改页面 / 传播木马。
- 常见危害:
- 窃取用户
Cookie / LocalStorage
- 伪造身份(劫持会话)
- 植入恶意广告、钓鱼页面
- 内网探测和进一步攻击
- 窃取用户
2. XSS 分类
- 反射型 XSS
- 攻击代码通过 URL参数 传递,立即返回页面并执行。
- 示例:
http://victim.com/search?q=<script>alert('XSS')</script>
- 存储型 XSS
- 恶意脚本存储在 数据库/留言板/评论区,每次页面加载都会触发。
- 危害最大。
- DOM型 XSS
- 利用前端 JavaScript 对 DOM 操作不当导致漏洞。
- 示例:
document.write(location.hash);
3. 常见测试 Payload
<script>alert('XSS')</script>
<img src=x onerror=alert('XSS')>
"><script>alert(document.cookie)</script>
<svg onload=alert(1)>
(测试时需逐步递进,避免误伤)
4. XSS 防御方法
- 输入过滤:严格校验用户输入(正则、白名单)。
- 输出编码:对 HTML、JS、URL 中的动态输出进行转义(如
< > "
)。 - CSP(内容安全策略):限制加载脚本来源。
- HttpOnly Cookie:避免前端脚本窃取 Cookie。
5. XSS 攻击原理示意图
用户请求页面 → 恶意脚本被注入 → 服务器返回含恶意脚本的页面 → 浏览器执行脚本 → 窃取信息/劫持会话
发表回复