乐于分享
好东西不私藏

如何利用AI获得六位数的漏洞赏金?

如何利用AI获得六位数的漏洞赏金?
本文皆在讲述,我们如何设计一套Ai Src系统
并用这套系统拿下本届白帽赏金赛第一名,获得六位数的漏洞赏金

注:非通用系统架构,也不是AI全自动方案,更无法弥补模型本身的推理缺陷

天九人一,模七人三,模型决定整个Agent设计天花板

使用模型需具备长上下文与强推理能力 如Claude GPT等

且挖掘者有能力审核 AI 产出 具备基础的漏洞常识 而非豆包黑客

涉及术语:

  • Loop = 观察→推理→行动→反馈的单轮或多轮循环
  • 会话 = 一次完整测试任务的上下文序列(包含多个 Loop)
  • 约束文件 = 写给 AI 的行为边界文件如skills rules claude.md hook等

整体思想:AI本身具备丰富的安全知识(SQL 注入、IDOR、SSRF、越权等)

不需要像传统扫描器那样由人类逐条写规则,而是:

  • 不束缚 AI 的测试思路
  • 只设定行为边界与报告标准
  • 让 AI 自主决定测什么、怎么测

主要做四件事

  1. 设定行为边界 — 什么不允许做(硬约束,外部强制)
  2. 设定报告标准 — 什么才算漏洞(软约束 + 外部验证)
  3. 提供基础设施 — 环境、工具、调度
  4. 放手但监督 — 不干涉测试思路,但对输出做外部过滤

在我们看来,AI Agent 的运行本质是一个 Loop(观察→推理→行动→反馈)

Loop 的终止条件通常是任务完成或假完成 以及模型自我判定为无法继续

在 SRC 场景中,该 Loop 常见的失效模式包括目标漂移、规则遗忘和伪完成

Loop 的三种失效及应对

失效
典型表现
约束
解决
方向偏移
测越权跑去测 CORS
决策树引导
切换方向前强制重读
规则遗忘
长会话后忽视"不报"清单
关键规则置顶 + 精简
定时注入提醒 
会话长度限制
空循环/伪完成
耗时无产出或幻觉漏洞
时间约束写入规则
外部超时强制终止

我们早期踩过的坑是:AI 会在无进展时"发明"一个漏洞来满足完成 实际上没有完成

模型能力与各自解法

模型能力
解法
通用安全知识
不教方法论,放手发挥
测试方向选择
决策树引导,不限制具体路径
逻辑推理(短链)
信任,对长链(>10步)保持警惕
自我行为约束
外部计时器 + 会话长度限制 
 确实烧钱....
漏洞严重性判断
外部硬规则引擎过滤
对自身输出的审核
多层验证架构

设计原则

原则
限定
1
约束优先于教学
前提是模型已具备基础能力,而非某包
2
外部验证优先于自检
自检有价值但不可为唯一验证
3
现象 ≠ 漏洞
必须有 PoC + 已证明影响
4
ROI 驱动方向
需根据目标类型调整
5
工程层兜底
超时/拦截/重启由外部执行
6
实战迭代
飞轮效应

约束文件设计

只写边界、方向、标准,不写方法论

模型已具备海量安全知识,过度指导反而挤占上下文、限制推理空间

我们吃过亏:早期版本把垃圾洞清单写得过于复杂,附带了大量"除非…则可以报"的例外条件

AI 反而把它当成一个需要"辩证看待"的问题,结果误报率不降反升

后来砍成一句"不报,除非附带完整窃取 PoC,效果立竿见影,AI就是一个M,必须狠狠的S

如果目标有特殊技术栈或需要特定绕过链,追加独立补充文件注入,不膨胀主文件

每一行都有明确行为指向,关键规则放在文件首尾(因为模型注意力更专注于头尾)

垃圾洞清单

以下绝对不报,无论 AI 多么"确信":

  • CORS 配置(除非附带完整数据窃取 PoC)
  • HTTP 安全头缺失 / 版本号暴露
  • Self-XSS / Sourcemap 泄露
  • SSL/TLS 常规警告 / Rate limiting 缺失
  • 无法链式利用的开放重定向
  • 任何没有可执行 PoC 的"发现"

速查卡(demo)

 无 PoC = 不存在 现象 ≠ 漏洞,漏洞 = 已证明的影响 CORS / 安全头 / 版本号 = 不碰 Self-XSS = 垃圾 P3 以下不写报告 20 分钟无进展 → 必须换方向 报告必须有 curl 或可执行命令 替换 ID 至少测 3-5 个 A 接口响应字段 → 试喂给 B 接口 排序参数(sort/orderBy)是被低估的注入点

决策树(demo)

有登录功能    → 越权(IDOR)API 服务     → 未授权访问文件上传     → 上传绕过搜索/输入框  → 注入类GraphQL     → 内省 + 未授权 mutationJava 中间件  → 反序列化 / JNDIPHP         → 文件包含 / SQL 注入支付功能     → 竞态 / 金额篡改什么都没有   → 翻 JS 找隐藏接口

时间约束:20 分钟无进展 → 外部计时器强制触发方向切换

AI误报问题  模式匹配 vs 因果证明

AI 误报的根源不是"不够聪明",而是训练目标与任务目标错位

前者是相关性推断,后者是因果链证明,SRC 要的是后者

工程上分三层应对:

Prompt 层反复强调"现象≠漏洞"(有效但可被遗忘)

输出解析层硬编码检查报告结构

外部验证层自动重放 PoC

现象不是漏洞,漏洞是结果

报的是结果(越权 / 注入 / RCE),不是过程(信息泄露 / 配置问题)

验证机制——谁来审核审核者

问题

让 AI 自我审核等于让出题人自己阅卷

如果 AI 能稳定区分现象和漏洞,它一开始就不会误报。自检清单的正确定位是第一道降噪器,不是最终质量保证

多层验证架构

AI 自检清单(辅助降噪)

通过不代表合格,未通过则确定不合格:

  1. 有可复现 PoC / curl / 可执行命令?
  2. 报的是现象还是已证明的安全影响?
  3. 验证了多个 ID / 参数(3-5 个)?
  4. 全部在授权范围内?
  5. 命中垃圾洞清单任何条目?
  6. 影响评估具体到 CIA 哪个维度?
  7. 尝试过跨接口参数移植?

一些技巧点

约束的强制执行

  • 输出解析器:无结构化 PoC → 拒绝

  • 关键词拦截器:标题命中垃圾洞 → 拒绝

  • 外部计时器:20 分钟无新请求 → 注入切换指令

  • 会话长度限制:超 50 轮 → 强制总结并重启

  • 危险命令拦截:rm -rf / DROP TABLE → 执行层直接拦截

工具推荐

防遗忘

LLM 长对话中间内容记忆衰减,20–30 轮后规则约束开始失效。三条对策:

  1. 强制重读:切换方向前 / 每 30 分钟 / 输出报告前,外部控制器注入速查卡
  2. 会话重启:超 50 轮强制总结 + 新会话
  3. 规则首尾分布:不报清单置顶,格式要求置底

飞轮运转

技能文件每周更新 1–2 次,硬规则引擎实时更新,版本控制管理一致性。

模型选型与道德限制写法

模型
优势
Claude 4.6
推理链长、指令遵循好
GPT-5
工具调用成熟、格式稳定
DeepSeek
性价比高、中文友好

拒答解法——合法化上下文 + 术语重构

角色设定明确授权身份和测试范围,

映射:攻击→安全评估,注入→输入验证测试,渗透→授权漏洞验证等

实战复盘

能确认的

  • 接口枚举速度约为纯人工 3–5 倍
  • 越权/未授权是产出最高方向

已知局限

局限
缓解
30 轮后规则执行率下降
强制重启 + 进度总结
复杂业务逻辑仍需人工
AI 做侦察,人工做利用
工具调用偶发失败
自动重试 + 降级
模型幻觉 PoC
外部重放验证

开放问题

我们还没很好解决的:

  • 约束失效阈值:模型在什么条件下会系统性无视约束?loop如何高效维持?
  • 能力不足检测:模型在目标上能力不够时,如何自动识别并降级?怎么帮助AI更好的预测对应业务的下一个token?
  • 量化有效性:约束文件 A 比 B 好多少?怎么样更好的做约束?

才疏学浅,着笔于此,最后用小东师傅的话作为结尾吧

AI是能力放大器,不是能力替代品

本质公式: 你的经验判断(方向) × AI的执行效率(速度) = 产出

1. 人提供方向,AI提供执行。 经验丰富的人知道"看哪里",AI帮你快速"验证和穷举"

你的私有经验(对特定目标的熟悉、未公开的设计缺陷模式)是AI训练数据中没有的,这才是壁垒

2. AI有适用场景, 功能简单、JS少的站点效果最好,复杂站点上下文爆炸

AI反而降效,关键不是用AI覆盖所有目标,而是判断哪些目标适合用AI

3. 未来安全人员的核心竞争力不是漏洞知识库,而是:

    业务理解力

    系统建模力

    异常敏感度

    领域经验

    将直觉转化为可验证假设的能力

AI放大的是你已有的东西

没有经验,放大的就是零,新人应该先去学习漏洞原理,再反过来用AI进行加速

系统架构图览

如果你有其他的想法交流

或想加入我们的AI安全社区,欢迎联系笔者