好的,阿杰 👍
下面我帮你整理一份 Web安全测试之 XSS(跨站脚本攻击) 的详解文档,包含:原理、分类、测试方法、防御措施,适合入门学习和实战参考。


Web 安全测试之 XSS

1. 什么是 XSS?

XSS(Cross-Site Scripting,跨站脚本攻击)是一种常见的 Web安全漏洞
攻击者将恶意脚本(通常是 JavaScript)注入到网页中,当其他用户访问时,这些脚本会在浏览器中执行,从而盗取敏感信息或控制用户行为。

常见危害:

  • 窃取 Cookie、Session ID
  • 伪造用户身份发起请求(CSRF 联合攻击)
  • 劫持用户浏览器(恶意跳转、钓鱼页面)
  • 键盘记录、挖矿脚本注入

2. XSS 分类

  1. 反射型(非持久型)
    • 恶意脚本通过 URL参数 注入并立即返回到页面执行。
    • 示例:http://example.com/search?q=<script>alert('XSS')</script>
  2. 存储型(持久型)
    • 恶意脚本被存储到 数据库 / 评论区 / 用户资料 等位置,其他用户访问时触发。
    • 示例:攻击者在留言板输入<script>alert("你中招了")</script>
  3. DOM 型(前端型)
    • 攻击代码通过修改 页面的 DOM 执行,不需要服务端参与。
    • 示例:document.write(location.hash.substring(1)); // URL: http://example.com/#<img src=x onerror=alert('XSS')>

3. XSS 测试方法

安全测试人员常用以下方式检测 XSS:

  1. 基础探测
    在输入框、URL 参数中输入:<script>alert(1)</script> <img src=x onerror=alert(2)> <svg onload=alert(3)> 观察是否执行。
  2. 绕过测试
    使用编码或混淆绕过过滤:
    • HTML 实体:<script>alert&#40;1&#41;</script>
    • 双写:<scr<script>ipt>alert(1)</scr</script>ipt>
    • 大小写混合:<ScRiPt>alert(1)</ScRiPt>
  3. 重点测试点
    • URL 参数、搜索框
    • 登录 / 注册表单
    • 评论 / 留言区
    • HTTP Header(如 User-Agent 注入)

4. 防御措施

  1. 输入过滤
    • 拒绝不合法的输入(白名单策略)
    • 特殊字符转义:< > & " '
  2. 输出编码
    • HTML 转义:&lt;&gt;&quot;
    • JavaScript 上下文输出要 JSON.stringify
  3. 使用 CSP(Content Security Policy)
    • 限制页面加载的脚本来源,降低攻击面。
  4. HttpOnly Cookie
    • 防止脚本直接读取 Cookie。
  5. 框架自带防护
    • 使用 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 分类

  1. 反射型 XSS
    • 攻击代码通过 URL参数 传递,立即返回页面并执行。
    • 示例:http://victim.com/search?q=<script>alert('XSS')</script>
  2. 存储型 XSS
    • 恶意脚本存储在 数据库/留言板/评论区,每次页面加载都会触发。
    • 危害最大。
  3. DOM型 XSS
    • 利用前端 JavaScript 对 DOM 操作不当导致漏洞。
    • 示例:document.write(location.hash);

3. 常见测试 Payload

&lt;script>alert('XSS')&lt;/script>
&lt;img src=x onerror=alert('XSS')>
">&lt;script>alert(document.cookie)&lt;/script>
&lt;svg onload=alert(1)>

(测试时需逐步递进,避免误伤)


4. XSS 防御方法

  • 输入过滤:严格校验用户输入(正则、白名单)。
  • 输出编码:对 HTML、JS、URL 中的动态输出进行转义(如 &lt; &gt; &quot;)。
  • CSP(内容安全策略):限制加载脚本来源。
  • HttpOnly Cookie:避免前端脚本窃取 Cookie。

5. XSS 攻击原理示意图

用户请求页面 → 恶意脚本被注入 → 服务器返回含恶意脚本的页面 → 浏览器执行脚本 → 窃取信息/劫持会话