我在自己 AI 智能体的工具访问里找到了 3 个安全漏洞
来源:dev.to — 2026-09-03
📋 概述
作者为 WebMCP 黑客松做了 GeoMart:人类填写未提交的现场简报,AI 智能体用 WebMCP 工具读取、对照物理约束打分并草拟报价,最后由人类批准。黑客松规则要求每个核心动作只能经由 WebMCP 工具到达,作者自认为已覆盖,于是让 Google Antigravity 拿着完整源码攻击它,十分钟就挖出三个问题:智能体提供的文本未转义直接进 innerHTML;创建报价请求的 POST 端点零防护,外部脚本可直接调用;用 Origin 头校验绕不过——因为仓库是开源、Origin 值根本不是秘密,Node 的 fetch 能随意伪造。最终真正生效的修复是 Cloudflare Turnstile,用只存在 Worker secret、永不进仓库的密钥做服务端校验。
🔑 核心要点
- 用 AI 对全源码做红队测试,十分钟就发现智能体文本未转义直接拼进 innerHTML
- 创建报价的 POST /api/quotes 端点零防护,裸脚本即可代人类提交报价
- 公共仓库里的 Origin 校验形同虚设:告诉攻击者它怎么工作,它照样能过
- 会话 cookie 方案同样失效——脚本可先抓页面取 cookie 再回放真实请求
- 真正起效的是 Cloudflare Turnstile,服务端校验密钥只存 Worker secret、永不进代码与客户端
💡 金句
如果一个安全检查在你把它如何工作的原理告诉攻击者之后仍能通过,那它从来就不是真正的检查。
👍 0
👎 0
← 返回 dev.to 首页