文章总结: 本文分析了一个结合CORS配置错误与CSRF令牌作用域缺失的高危漏洞。攻击者通过目标站点密码重置页面的CORS漏洞窃取CSRF令牌,并利用该令牌越权修改用户个人资料邮箱实现账号接管。核心问题在于CORS允许任意源携带凭证访问,且后端未校验CSRF令牌的业务作用域。文章提供了完整的漏洞复现流程并指出修复需严格限制CORS域和令牌作用域。 综合评分: 85 文章分类: WEB安全,漏洞分析,渗透测试,实战经验,应用安全
漏洞#13 CORS 泄露 Token 结合 CSRF 实现无感账号接管
原创
Pwn1 Pwn1
漏洞集萃
2026年4月6日 14:39 山东
免责声明 本公众号所发布的文章内容仅供学习与交流使用,禁止用于任何非法用途。
在测试一个私有漏洞赏金计划时,我遇到了一个
漏洞场景
这个漏洞发生在两个本该互相隔离的业务场景的交叉地带:
一个是相对边缘的密码重置页面(http://www.target.com/auth/forgotpassword)。
另一个则是极其核心的个人资料修改页面(https://www.target.com/site/profile),在这里可以直接修改用户的姓名、联系方式以及最关键的绑定邮箱。
漏洞点功能流程
在正常的业务逻辑里,这两个接口是各司其职的:
- 修改个人资料:用户登录后,进入
https://www.target.com/site/profile。系统会渲染出一个表单,表单里藏着一个由后端生成的、当前页面专属的防伪造 CSRF Token。用户填好新邮箱点提交,浏览器带上这个 Token 发起 POST 请求,后端校验 Token 没错,再把邮箱改掉。 - 密码重置:用户访问
http://www.target.com/auth/forgotpassword,页面同样会生成一个 CSRF Token 用于防止恶意请求。
在没有恶意攻击时,每次提交操作都会严格校验对应页面生成的 Token,防止跨站请求伪造。
发现过程
起初,常规的子域名枚举和 CORS 自动化扫描探测到,目标站点的密码重置接口 http://www.target.com/auth/forgotpassword 存在严重的 CORS 配置错误。抓包一看,响应头里赫然写着:
access-control-allow-credentials: true
Access-Control-Allow-Origin: https://evil.com
这意味着任何第三方网站都可以带上受害者的凭证(比如 Cookie)去读取这个页面的内容。写个简单的 XHR 脚本去拉取这个页面,发现响应内容里直接把这个页面的 CSRF Token 给暴露出来了。
但在实战中,拿着这种毫无破坏力的 Token 直接去提个 CORS 泄露的漏洞,大概率会被官方以“无实际安全影响”为由直接关掉。毕竟,光拿到一个密码重置页面的 Token 能干嘛呢?
遇到这种情况,思路必须转换:既然拿到了合法的令牌,那这个令牌能不能在别的地方用?
目光转向了核心的更新个人信息端点 https://www.target.com/site/profile。这个端点本身没有 CORS 漏洞,防守严密,想要修改里面的 email 等敏感字段,必须得有合法的 CSRF Token。
这时候,一个假设出现了:系统的 CSRF Token 校验机制是不是全局通用的?
测试随即展开:
- 准备好受害者的邮箱
[email protected]和准备替换的攻击者邮箱[email protected]。 - 构造一个恶意的 HTML 页面,利用第一步发现的 CORS 漏洞,偷偷拉取受害者在密码重置页面的 CSRF Token。
- 利用 Burp Suite 拦截正常修改个人信息的请求,右键利用 Engagement tools 直接生成一个 CSRF PoC 表单。
- 核心操作来了:把表单里的
email字段换成攻击者的邮箱[email protected],并且把表单里用于防御的隐藏字段_csrf-backend的值,直接替换成刚才通过跨域偷来的、属于密码重置页面的 Token。 - 当受害者在登录状态下触发这个 CSRF 请求后,奇迹发生了——后端没有拦截。受害者的个人资料被瞬间覆盖,绑定邮箱变成了攻击者的邮箱。到这里,账号已经被彻底接管。
漏洞原理
第一,CORS 策略配置极其拉胯。密码重置接口允许任意源(Access-Control-Allow-Origin: https://evil.com)且允许携带凭证(access-control-allow-credentials: true)进行跨域资源共享,导致防御 CSRF 的底层令牌直接裸奔,被攻击者的脚本轻松窃取。
第二,最致命的 Token 作用域校验缺失。后端在校验 CSRF Token 时,仅仅验证了“这个 Token 是否有效且属于当前用户”,却没有验证“这个 Token 是不是为当前业务接口生成的”。这就导致了令牌的越权使用——哪怕是从密码重置页面生成的局部 Token,也能畅通无阻地通过修改个人资料接口的校验。这种全局通用的 Token 机制,让原本无害的局部泄露,变成了可以直接打穿整个账户体系的通用钥匙。
觉得本文内容对您有启发或帮助? 点个关注➕,获取更多深度分析与前沿资讯!
👉 往期精选
一种利用 HTTP 重定向循环的新型 SSRF 技术
【译】入侵谷歌支持系统:泄露数百万条客户记录(赏金 1.4 万美元)
预接管账号:结合 OTP 校验分离与空格绕过注册内部管理员邮箱
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:漏洞集萃 Pwn1 Pwn1《漏洞#13 CORS 泄露 Token 结合 CSRF 实现无感账号接管》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论