MCP暴露面的安全问题:从发现到利用
MCP(Model Context Protocol)是 Anthropic 在 2024 年底推出的开放协议,目标是让 LLM 能以标准化方式连接外部工具、数据库和服务。一年内已有数千个 MCP Server 实现,覆盖从数据库查询到 Kubernetes 操作的各类能力。 但 MCP 的设计起点是「方便接入」,不是「安全部署」。规范没有强制认证,工具列表是公开的能力清单,资源 URI 直接暴露内部路径——这些设计选择让 MCP Server 的暴露面比传统 HTTP API 大得多。 这篇文章把 MCP 的暴露面拆开:先看协议设计带来了哪些天然的攻击面,然后走一条完整的攻击链,最后给出具体的修复建议。 MCP 协议是什么MCP 基于 JSON-RPC 2.0,定义了 Client 与 Server 之间的通信方式。Server 暴露三类能力: Tools:LLM 可调用的函数,如 run_sql_query、deploy_to_k8s、send_email Resources:可读取的数据,如文件内容、数据库记录 Prompts:预定义的提示词模板 传输层经历了三代演进,...
LLM安全攻击面全景:一个红队视角的分析
做红队的时候,接到一个新目标,我做的第一件事不是找漏洞,而是画攻击面——把所有可能的入口、信任边界、数据流向全部列出来,然后再决定从哪里下手。 面对 AI 系统,我做同样的事。但很快我发现,传统侦察方法论在这里几乎完全失效。 你跑一遍 nmap、whatweb、dirb,目标只暴露一个 443 端口和一张干净的前端页面。所有流量都是规规矩矩的 HTTPS JSON。从外部看,这面墙光滑得没有缝。 但攻击面就在那里——只是不在端口上。 这篇文章,我先把 AI 系统的攻击面全部画出来——从模型到应用,从 Agent 到基础设施,包括多模态和安全性的维度——然后逐层拆开,讲清楚每个攻击面怎么被发现、底层问题是什么。 先看全景一个现代 AI 系统不是单一组件,是一个多层堆栈。每一层都有独立的攻击面,层与层之间还能组合成攻击链。 七个层级,加上三个跨层维度——这就是完整的攻击面。一次真实的攻击往往贯穿多层: 通过 HTTP 头确认模型版本(侦察)→ 利用提示注入覆盖安全指令(应用层)→ 控制 Agent 调用工具读取敏感数据(Agent 层)→ 通过 RAG 的 sources 字段外...
做了5年红队,我为什么现在转向AI安全
做了 5 年渗透测试和红队,我最近意识到一件事:我熟悉的攻击方法论,正在被 AI 以另一种方式重新定义。 我的背景先简单介绍一下我自己。 过去 5 年,我一直在一线做攻防。从最初的渗透测试做起,Web、内网、域渗透、社工,能打的都打过。后来慢慢从执行者变成了红队负责人,开始负责整个攻击链的规划、团队管理和项目交付。 这个过程中积累了什么?最重要的不是某一个漏洞的利用技巧,而是一种攻击者思维:面对一个目标系统,习惯性地去想——它哪里最脆弱?攻击路径是什么?防御方会在哪里设卡?我怎么绕过去? 这种思维方式,在过去 5 年里帮我打穿了很多项目。但现在,我发现它面对的东西变了。 为什么是现在促使我认真思考转向 AI 安全的,是几个叠在一起的变化。 第一,攻击面正在快速扩张。 传统渗透测试里,我们的目标很清晰:Web 应用、内网服务、域环境、云基础设施。但过去一年,越来越多的系统开始把 LLM 嵌入到核心业务逻辑里——客服、代码生成、数据分析、自动化运维。这意味着一个全新的攻击面出现了:模型本身。 提示注入、越狱、训练数据泄露、Agent 工具滥用、RAG 投毒……这些攻击手法在两三年前几...
discuz!ML 代码执行 (CVE-2019-13956)
【漏洞描述】: 该漏洞存在discuz ml(多国语言版)中,cookie中的language可控并且没有严格过滤,导致可以远程代码执行。 【环境搭建】: https://vulfocus.cn/ discuz!ML 代码执行 (CVE-2019-13956)一键启动 【复现过程】 (详细说明完整复现过程,并尽量与规则文件的 rule 对应起来。) 1、漏洞点/upload/source/module/portal/portal_index.php,使用template函数处理diy:portal/index,然后使用include_once包含 2、进入tmplate,发现把DISCUZ_LANG函数拼接成为一个缓存文件名,然后又返回了缓存文件名 3、跟进DISCUZ_LANG函数,发现从cookie中取language的值给$lng,由于参数$lng可控 ,导致了 cookie中的language参数存在代码注入。 4、访问 http://123.58.224.8:30338/安装后打开首页抓个包,修改cook...