文章目录
- 前言
- 一、AI安全测试概述
- 1. AI应用与传统应用的安全差异
- 2. AI应用的高危功能点
- 二、提示词注入(Prompt Injection)
- 1. 什么是指示词注入
- 2. 系统提示词提取
- 3. 角色扮演绕过
- 4. 提示词中的隐藏条款检测
- 三、内容安全绕过
- 1. 字符映射与编码绕过
- 2. 强制输出绕过
- 3. 多轮对话绕过
- 4. 重复提问绕过
- 四、AI相关的SSRF漏洞
- 1. AI生图/图像处理SSRF
- 2. AI知识库SSRF
- 3. AI报告/文档SSRF
- 五、AI相关的XSS漏洞
- 1. AI对话分享XSS
- 2. AI HTML渲染XSS
- 3. 第三方组件XSS
- 六、AI知识库安全测试
- 1. 知识库文件探测
- 2. 知识库内容泄露
- 3. 知识库权限边界
- 七、AI应用的信息泄露
- 1. 对话历史泄露
- 2. 模型信息泄露
- 3. 用户数据泄露
- 八、模型拒绝服务(DoS)
- 1. 资源消耗型DoS
- 2. 模型崩溃异常
- 3. 上下文窗口耗尽
- 九、AI应用的其他安全测试
- 1. 恶意文件生成
- 2. 模型混淆与误导
- 3. AI Agent工具调用安全
- 十、实战心得
- 1. AI功能点是新型攻击面
- 2. 单轮对话即可触发多数漏洞
- 3. 多场景覆盖是必要
- 4. 联动多个功能点
- 5. 利用AI辅助分析绕过路径
- 6. 关注第三方组件
- 7. 提示词的隐藏与泄露是双刃剑
- 十一、结语
- 核心要点回顾
- 防御建议
⚠️本博文所涉安全渗透测试技术、方法及案例,仅用于网络安全技术研究与合规性交流,旨在提升读者的安全防护意识与技术能力。任何个人或组织在使用相关内容前,必须获得目标网络 / 系统所有者的明确且书面授权,严禁用于未经授权的网络探测、漏洞利用、数据获取等非法行为。
前言
随着大语言模型(LLM)和AI应用的快速普及,越来越多的企业将AI能力集成到产品中。AI对话、AI生图、AI知识库、AI智能体等功能正在成为Web应用的标准配置。然而,AI技术栈的引入也带来了全新的安全风险——提示词注入、内容安全绕过、AI相关的SSRF、XSS、信息泄露等问题层出不穷。本文将系统性地介绍AI应用的安全测试方法论,帮助读者建立完整的AI安全测试思维体系。
一、AI安全测试概述
1. AI应用与传统应用的安全差异
| 对比项 | 传统Web应用 | AI应用 |
|---|---|---|
| 输入校验 | 基于规则和正则 | 基于自然语言理解 |
| 攻击面 | 参数、接口、文件 | 提示词、上下文、多模态输入 |
| 输出控制 | 固定模板 | 动态生成,不可完全预测 |
| 信任边界 | 明确的用户/系统边界 | 模糊的AI/用户交互边界 |
| 横向移动 | 内网渗透 | 通过AI功能访问内网/云服务 |
2. AI应用的高危功能点
SSRF高发区:
- AI生图/抠像/图像处理功能(用户可控的URL参数)
- AI知识库的网页导入、链接抓取功能
- AI报告生成中的外部资源加载
XSS高发区:
- AI对话分享功能(外部资源加载)
- AI渲染的HTML/JS内容
- 第三方图表/富文本组件(Mermaid等)
信息泄露高发区:
- AI对话历史
- 知识库文件内容
- 系统提示词(System Prompt)
二、提示词注入(Prompt Injection)
1. 什么是指示词注入
提示词注入是指攻击者通过精心构造的输入,覆盖或绕过AI模型的系统指令(System Prompt),使模型执行非预期的操作。
2. 系统提示词提取
测试目标:诱导AI输出其系统提示词、角色设定和约束规则。
测试思路:
- 直接要求模型输出系统指令
- 利用角色扮演场景诱导模型"复述"设定
- 构造"总结以上规则"类的指令
- 使用"原样输出"、"禁止思考"等指令测试模型对边界指令的处理能力
关键发现:
- 单轮对话即可触发多数提示词泄露
- 如果模型输出了隐藏的约束规则或不应展示的内部指令,说明存在提示词泄露
3. 角色扮演绕过
测试思路:
- 通过角色扮演场景(如"科普"、“辩护”、“假设”)绕过内容审查
- 利用"历史人物模拟"、"小说创作"等场景包装敏感话题
- 构造"不思考/直接拼接"类指令,强制模型绕过安全检查
4. 提示词中的隐藏条款检测
测试目标:发现提示词中本应隐藏但实际暴露的约束条款。
测试思路:
- 分析AI响应中是否包含不应展示的系统级指令
- 对比不同场景下的响应,发现一致的约束模式
- 通过多轮对话逐步引导模型暴露完整提示词
三、内容安全绕过
1. 字符映射与编码绕过
测试思路:
- 使用同音字、形近字、拼音替代敏感词汇
- 利用字符映射(如"脑筋急转弯"式提问)绕过关键词过滤
- 使用不同语言混合输入(中英文混合、繁简转换)
2. 强制输出绕过
测试思路:
- 构造"不思考,直接输出"、"忽略以上所有规则"等指令
- 利用"翻译"、“格式化”、"总结"等中性任务包装敏感请求
- 通过分步引导,逐步突破模型的安全边界
3. 多轮对话绕过
测试思路:
- 第一轮建立信任关系(无害话题)
- 第二轮逐步引入敏感话题
- 第三轮直接请求违规内容
- 利用对话上下文的累积效应绕过单轮安全检查
4. 重复提问绕过
测试思路:
- 对同一敏感问题多次重复提问
- 观察模型在多次拒绝后是否会"妥协"
- 利用模型的概率性输出特性,通过多次尝试获取违规响应
四、AI相关的SSRF漏洞
1. AI生图/图像处理SSRF
场景描述:AI生图、抠像、图像处理等功能通常需要用户提供图片URL,服务器从该URL下载图片进行处理。
测试思路:
步骤1:识别用户可控的URL参数
- 抓包分析AI功能中是否存在用户可控的URL参数
- 重点关注图片URL、资源URL、参考图URL等参数
步骤2:测试URL校验规则
- 分析服务器的路径格式校验规则
- 尝试构造匹配路径 + 301/302重定向突破域名限制
- 测试半回显验证(图片回显、HTML回显)
步骤3:探测内网和云服务
- 尝试内网地址(
192.168.x.x、10.x.x.x、172.16.x.x) - 尝试云元数据地址(
169.254.169.254) - 使用DNSLog验证请求是否成功发送
关键方法:将文件名构造为目录 + 后端脚本实现重定向,实现从受限URL到任意地址访问的绕过。
2. AI知识库SSRF
场景描述:AI知识库平台的网页导入、链接抓取等功能需要从外部URL获取内容。
测试思路:
- 对"网页导入"、"链接解析"等数据摄取功能进行URL可控性测试
- 尝试内网地址和云元数据地址
- 关注服务器是否将请求目标的响应内容直接回显在前端
- 通过响应回显确认漏洞并提取信息
3. AI报告/文档SSRF
场景描述:AI生成的报告、文档中可能包含外部资源引用。
测试思路:
- 测试报告生成中是否加载外部图片、CSS、JS资源
- 分析资源加载的URL校验逻辑
- 利用重定向和路径构造绕过限制
五、AI相关的XSS漏洞
1. AI对话分享XSS
场景描述:AI对话的分享功能常通过URL参数加载外部资源。
测试思路:
步骤1:分析分享链路
- 抓包分析分享功能的URL参数结构
- 识别可控的参数(如
url、image、source等)
步骤2:域名白名单绕过
- 当存在域名校验时,寻找同域名/同储存桶的上传功能
- 利用"上传恶意文件 + 同域引用"绕过白名单
- 测试不同文件类型(JS、XLSX、HTML等)在加载/解析时的处理差异
步骤3:JSONP风险
- 关注AI应用中的JSONP数据加载方式
- 如果JS内容可控,则可触发XSS
核心方法:联动多个功能点(分享 + 上传),利用AI辅助分析绕过路径,通过构造分享链接实现存储型XSS传播。
2. AI HTML渲染XSS
场景描述:AI生成的内容中包含HTML/JS代码,在客户端渲染执行。
测试思路:
- 寻找支持HTML/JS渲染的AI功能点(对话、报告等)
- 测试是否对用户输入的HTML/JS执行无强隔离
- 在AI渲染的JS沙箱环境中测试全局函数劫持
- 利用DOM元素嵌入数据实现外带数据提取
关键风险:将AI服务器作为隐形代理跳板,绕过同源策略和IP黑名单。
3. 第三方组件XSS
场景描述:AI产品中集成的第三方富文本/图表组件(如Mermaid、Markdown渲染器)可能存在XSS漏洞。
测试思路:
- 识别AI产品中集成的第三方组件
- 测试用户输入是否被动态生成HTML并执行
- 覆盖Web端、客户端、分享页等多场景
- 关注AI对话分享页面可能使用未升级的组件版本
跨场景危害:同一组件漏洞在Web端可能是XSS,在客户端(AI桌面应用)可能结合特权接口升级为RCE。
六、AI知识库安全测试
1. 知识库文件探测
测试目标:探测AI知识库中存储的文件清单和内容。
测试思路:
- 通过对话诱导模型列出知识库中的文件
- 从枚举文件清单逐步深入到获取具体文件内容/下载链接
- 测试未授权的数据访问控制能力
2. 知识库内容泄露
测试目标:获取知识库中不应公开的敏感信息。
测试思路:
- 构造针对性问题,引导模型引用知识库中的敏感内容
- 利用角色扮演场景绕过知识库的访问控制
- 测试知识库文件的下载链接是否可直接访问
3. 知识库权限边界
测试目标:验证不同用户/角色对知识库的访问权限。
测试思路:
- 使用低权限账号尝试访问高权限知识库
- 测试知识库文件的共享链接是否存在越权访问
- 验证知识库的搜索功能是否存在信息泄露
七、AI应用的信息泄露
1. 对话历史泄露
测试思路:
- 测试是否可以查看其他用户的对话历史
- 通过ID参数遍历获取他人对话记录
- 测试对话分享的访问控制是否严格
2. 模型信息泄露
测试思路:
- 诱导模型输出其底层模型名称、版本、训练数据信息
- 探测模型的系统架构和技术栈
- 获取模型的API端点和调用方式
3. 用户数据泄露
测试思路:
- 通过接口测试获取其他用户的AI使用记录
- 分析AI应用的响应中是否包含其他用户的上下文信息
- 测试AI功能的搜索/推荐是否泄露用户隐私
八、模型拒绝服务(DoS)
1. 资源消耗型DoS
测试思路:
- 构造极端长度的输入,测试模型的处理能力和响应时间
- 构造循环引用或递归深度的提示词,测试模型的处理逻辑
- 利用多线程并发请求,测试服务的承载能力
2. 模型崩溃异常
测试思路:
- 构造特殊字符组合或编码异常输入
- 测试模型在异常情况下的响应(是否返回堆栈信息、内部错误)
- 通过异常响应获取系统内部信息
3. 上下文窗口耗尽
测试思路:
- 持续发送大量对话内容,耗尽模型的上下文窗口
- 观察模型在长对话后的行为变化(是否遗忘系统指令)
- 利用上下文窗口限制绕过安全约束
九、AI应用的其他安全测试
1. 恶意文件生成
测试思路:
- 诱导AI生成包含恶意内容的文件(如PPT、PDF、文档)
- 测试生成的文件中是否可以嵌入XSS payload
- 测试AI生成的代码是否存在安全漏洞(如SQL注入、XSS)
2. 模型混淆与误导
测试思路:
- 通过大量错误信息训练模型产生错误输出
- 利用模型的概率性输出特性制造"幻觉"
- 测试模型对矛盾信息的处理能力
3. AI Agent工具调用安全
场景描述:AI Agent可以调用外部工具(代码执行、数据库查询、API调用)。
测试思路:
- 测试Agent的代码解释器是否存在沙箱逃逸
- 测试Agent的数据库查询功能是否存在SQL注入
- 测试Agent的API调用功能是否存在SSRF
- 测试Agent的文件操作功能是否存在任意文件读写
十、实战心得
1. AI功能点是新型攻击面
AI生图、知识库、对话分享等功能是SSRF、XSS的高发区。在测试传统Web功能的同时,务必关注AI相关的功能点。
2. 单轮对话即可触发多数漏洞
提示词注入、内容安全绕过等漏洞往往不需要复杂的多轮对话,单轮精心构造的输入即可触发。
3. 多场景覆盖是必要
同一AI组件漏洞在Web端、移动端、桌面端、分享页的危害可能完全不同。需要覆盖多场景进行测试。
4. 联动多个功能点
AI安全漏洞往往需要联动多个功能点才能完整利用。如"分享 + 上传"联动实现XSS,"知识库 + 对话"联动实现信息泄露。
5. 利用AI辅助分析绕过路径
可以反过来利用AI的能力分析可能的绕过路径,再针对分析结果进行手工验证。
6. 关注第三方组件
AI产品大量集成第三方组件(Mermaid、图表库、Markdown渲染器等),这些组件可能存在已知漏洞,需要单独测试。
7. 提示词的隐藏与泄露是双刃剑
开发者在提示词中隐藏的约束条款如果被泄露,可能成为攻击者绕过安全限制的突破口。同时,隐藏条款本身的设计质量也决定了AI应用的安全性。
十一、结语
AI应用安全测试是SRC漏洞挖掘中的一个新兴且快速发展的领域。从提示词注入到内容安全绕过,从AI相关的SSRF到XSS,从知识库信息泄露到模型拒绝服务,每一个方向都充满了发现漏洞的机会。本文系统性地介绍了AI应用的安全测试方法论,希望能帮助读者建立完整的AI安全测试思维体系。
核心要点回顾
1. 提示词注入:
- 系统提示词提取
- 角色扮演绕过
- 强制输出绕过
2. 内容安全绕过:
- 字符映射与编码绕过
- 多轮对话绕过
- 重复提问绕过
3. AI相关SSRF:
- 生图/图像处理功能
- 知识库导入/抓取功能
- 报告/文档外部资源加载
4. AI相关XSS:
- 对话分享链路
- HTML渲染环境
- 第三方组件(Mermaid等)
5. 知识库安全:
- 文件探测与枚举
- 内容泄露
- 权限边界测试
6. 其他测试方向:
- 模型DoS
- 恶意文件生成
- Agent工具调用安全
防御建议
对于防守方来说,AI应用的安全防护需要从模型层和应用层同时入手:
- 输入过滤:对用户输入进行多层过滤,不仅依赖模型的自我约束
- 输出审查:对模型输出进行后处理审查,防止泄露敏感信息
- 沙箱隔离:AI执行环境(代码解释器、HTML渲染)必须使用严格沙箱
- URL校验:AI功能中涉及外部URL加载时,严格校验域名和白名单
- 权限控制:知识库、对话历史等数据按最小权限原则访问
- 组件更新:及时更新第三方组件,修复已知漏洞
- 监控告警:对异常的AI请求模式(高频、长输入、敏感关键词)进行监控