每日漏洞 | 跨站请求伪造

本文详细介绍了CSRF漏洞的概念、检测方法和修复策略。通过转账功能的实例,展示了如何通过检查请求的referer字段和token验证来检测CSRF漏洞。在修复方案中,提到了请求来源验证、一次性Token和图形验证码等方法。最后,作者分享了实际检测过程中的经验和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

01 漏洞描述


HTTP的无状态性,导致Web应用程序必须使用会话机制来识别用户。一旦与Web站点建立连接(访问、登录),用户通常会分配到一个Cookie,随后的请求,都会带上这个Cookie,这样Web站点就很容易分辨请求来自哪个用户,该修改哪个用户的数据。如果从第三方发起对当前站点的请求,该请求也会带上当前站点的Cookie。正是这是这个缺陷,导致了CSRF的产生,利用这个漏洞可以劫持用户执行非意愿的操作。

02 漏洞检测


CSRF的利用场景常常是在用户已登录的情况下,伪造用户意愿从站外发起请求。更深入剖析:请求能从站外发起(跨站)、请求的参数和值可以伪造(伪造请求),因此,CSRF的检测也是从这两点入手。

以转账为例,输入账户和金额,点击Transfer即可完成转账。我们检测该功能是否存在CSRF。

是否可跨站

要检测是否可跨站,只需要操作请求头中的referer字段即可。referer字段记录了请求的来源,如果请求头中没有referer字段,或者删掉请求头中的referer字段,均响应成功,那么服务器就没有校验请求来源,存在“跨站”。

首先正常提交请求包,发现转账成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值