打印 上一主题 下一主题

跨站请求伪造(CSRF)——无声的指令劫持与防御

[复制链接]
跳转到指定楼层
楼主
发表于 昨天 15:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查看 : 13|回复 : 0
跨站请求伪造(CSRF)——无声的指令劫持与防御
摘要:跨站请求伪造(CSRF,Cross-Site Request Forgery)是一种利用用户已登录身份在后台执行非本意操作的攻击技术。与XSS不同,CSRF不需要窃取Cookie,而是直接“借用”用户的合法会话,在用户不知情的情况下发起转账、修改密码、发表恶意内容等请求。本文将深入分析CSRF的攻击原理,通过渗透测试演示其利用方式,并重点介绍基于Token、SameSite Cookie和二次验证的成熟防御策略。
关键词:黑客网站攻击;CSRF;跨站请求伪造;渗透测试;会话劫持;SameSite;Anti-CSRF Token

一、引言
在许多黑客入侵事件中,攻击者无需破解密码,也无需注入恶意脚本,而是利用用户浏览器自动携带Cookie的特性,构造一个“合法”的伪造请求。例如,用户在登录银行网站后,点击攻击者发送的恶意链接,自己的账户就被转出了资金——这就是CSRF攻击的典型场景。由于CSRF利用了Web应用对用户身份信任机制的缺陷,长期以来位列OWASP Top 10严重漏洞之一。
二、CSRF攻击原理2.1 漏洞根源
CSRF的核心在于:Web应用仅依赖Cookie验证用户身份,而未对请求的发起来源进行校验。浏览器在向目标网站发送请求时,会自动携带该域下的所有Cookie(包括会话标识)。攻击者可以在第三方网站构造如下表单或图片标签:
[size=12.573px]html



<img src="http://bank.com/transfer?to=attacker&amount=10000" style="display:none">

当已登录银行网站的用户访问包含该图片的恶意页面时,浏览器会向bank.com发起GET请求,并自动附上用户的Cookie。服务器收到请求后认为这是合法用户的操作,执行转账。
2.2 CSRF的四个必要条件
  • 用户已登录目标网站,且会话Cookie未过期。
  • 目标网站的某个请求(通常为状态改变操作)存在CSRF漏洞。
  • 攻击者能够构造出完全合法的请求参数。
  • 用户通过浏览器访问攻击者控制的页面(或同域下的XSS配合)。

2.3 攻击类型
  • GET型CSRF:通过<img>、<iframe>、<script>标签自动发起GET请求。
  • POST型CSRF:构造自动提交的表单或使用JavaScript的fetch/XMLHttpRequest发送POST请求(需注意CORS限制,但传统表单没有跨域限制)。
  • JSON型CSRF:利用<form enctype="text/plain">或fetch发送JSON格式数据,绕过简单的校验。

三、渗透测试视角:POST型CSRF攻击链条
场景:某社交网站修改邮箱的请求为:
[size=12.573px]text



POST https://social.com/api/change_emailContent-Type: application/x-www-form-urlencodedCookie: session=abc123email=new@attacker.com

该请求没有额外的防CSRF机制。
步骤1:构造攻击页面
攻击者创建恶意HTML(托管在evil.com):
[size=12.573px]html



<html><body>  <form id="csrf" action="https://social.com/api/change_email" method="POST">    <input type="hidden" name="email" value="hacked@evil.com">  </form>  <script>document.getElementById("csrf").submit();</script></body></html>

步骤2:诱骗用户访问
通过钓鱼邮件或短链接将用户引导至evil.com。页面加载后表单自动提交,浏览器携带用户在social.com的有效Cookie。
步骤3:后果
受害者的邮箱被修改为攻击者控制的地址,随后攻击者可使用“忘记密码”功能重置账户密码,完成黑客账户渗透。
更隐蔽的方式:使用<iframe>或<img>搭配自动提交的JavaScript,全程无感知。
四、CSRF与其他攻击的区别


[td]
攻击类型
利用目标
是否需要窃取数据
前置条件
CSRF执行用户非本意操作用户已登录
XSS窃取Cookie或执行恶意脚本注入点
会话固定强制使用攻击者已知的会话ID用户登录前设置Session

对于黑客网站攻击来说,CSRF常与XSS配合:XSS窃取页面中的CSRF Token后,再发起带正确Token的CSRF请求,从而绕过防御。
五、CSRF防御完整方案
防御CSRF的核心思想:在请求中加入攻击者无法伪造的额外验证信息。
5.1 Anti-CSRF Token(同步令牌模式)
  • 原理:服务器在渲染页面时生成一个随机Token,嵌入到表单隐藏字段或请求头中。提交请求时,服务器验证Token是否匹配。
  • 实现:
    [size=12.573px]html



    <input type="hidden" name="csrf_token" value="随机字符串">
    Token应与用户会话绑定,每次会话不同或仅一次性使用。
  • 要求:Token不能通过Cookie传输,且需保证不可猜测(使用cryptographically secure random)。

5.2 SameSite Cookie属性(现代浏览器最强防御)
  • Set-Cookie: session=xxx; SameSite=Lax:允许同站和顶级导航的GET请求携带Cookie,但禁止第三方站点的POST请求携带。
  • SameSite=Strict:完全禁止第三方请求携带Cookie。
  • SameSite=None; Secure:允许跨站携带,但仅限HTTPS,且需要显式声明。
  • 设置SameSite=Lax或Strict可天然防御绝大多数CSRF攻击,但需注意旧浏览器兼容性。

5.3 验证Referer或Origin头
  • 检查请求的Origin头(存在)或Referer头是否为合法域名白名单。
  • 缺点:用户可配置浏览器不发送Referer,或者某些环境(如HTTPS降级)会丢失;且不可完全依赖,可作为纵深防线。

5.4 自定义请求头(针对API)
  • 要求所有状态变更的请求必须包含自定义头,如X-Requested-With: XMLHttpRequest。由于浏览器不会在跨域简单请求中自动添加自定义头,且CORS预检会阻止未授权的跨域请求,因此可有效防御。
  • 注意:CORS策略需配置为只允许受信任源,否则攻击者仍可通过fetch添加自定义头(需要CORS预检,但若服务器允许任意源则危险)。

5.5 二次验证
  • 对于高风险操作(如转账、修改密码、删除账号),要求用户输入密码、验证码或进行双因素认证(2FA)。这是最彻底的防护,但用户体验稍差。

5.6 使用基于SameSite的Cookie + CSRF Token双重保障
现代应用推荐:所有会话Cookie设置SameSite=Lax;同时为敏感API启用CSRF Token。对于不支持SameSite的旧浏览器,Token提供回退保护。
六、检测CSRF漏洞的方法
  • 手工测试:删除或修改请求中的csrf_token参数,看是否仍能成功。
  • 关闭Cookie referer限制:使用Burp Suite生成CSRF POC,测试跨域提交。
  • 自动化扫描:使用OWASP ZAP、Acunetix、CSRF Tester等工具识别无Token的敏感请求。
  • 代码审计:检查所有POST、PUT、DELETE等状态变更接口是否验证Token或Referer。

七、总结与最佳实践
CSRF是一种“借力打力”的攻击方式,攻击者不需要窃取任何用户凭证,只需构造一个请求并诱使受害者点击。防御CSRF最有效且简单的措施是设置Cookie的SameSite属性为Lax或Strict,并为所有状态变更API强制校验Anti-CSRF Token。对于高安全场景,应叠加Referer验证和二次认证。
开发人员和渗透测试人员需时刻铭记:任何只依赖Cookie识别身份的请求都可能成为CSRF的攻击目标。通过多层防御,可有效防止这类黑客入侵手段。


黑客接单网,一个诚信可靠的黑客在线接单平台网站 - 论坛版权欢迎各位客户访问黑客接单网
黑客接单网,一个诚信可靠的黑客在线接单平台网站是一个专业的黑客在线接单服务平台
黑客接单网,一个诚信可靠的黑客在线接单平台网站聚集多位顶级黑客大牛于此
专业服务于网站攻击,网站入侵,软件开发,软件破解,聊天记录截取,手机定位,删帖,改贴,开房记录查询等各种网络服务
如果您有相关业务需求,请联系我们在线客服咨询,获取解决方案
黑客接单网,一个诚信可靠的黑客在线接单平台网站全体工作人员恭候您下达任务,我们誓必不负重托。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

HeiKeJieDan(黑客接单网)黑客接单网,是一个国际顶级黑客在线接单网站平台,平台聚集数十位IT界顶级黑客精英大神,软件-网站开发工程师,逆向破解工程师,以及后勤协助人员,网络在线全职兼职人员,强大的IT精英团队聚集,只为为您提供最优质可靠的网络安全技术服务。

联系我们

新加坡-缅甸-菲律宾-美国

0037259400637(服务时间:9:00-18:00)

hk@heike8.com

在线咨询新浪微博官方微信官方微信

黑客客服

网   址:WWW.HKJD.CC
邮箱号:hk@heike8.com
快手号:HeiKeJieDan
电报TG号:hkjd9988
国际客服:0037259400637

快速回复 返回顶部 返回列表