CSRF跨站请求伪造漏洞防护

一、CSRF基础知识

1.1 CSRF攻击介绍

CSRF 的全名是 Cross Site Request Forgery,翻译成中文就是跨站请求伪造,它是一种常见的Web 攻击,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。

CSRF攻击通常利用了用户在不知情的情况下访问恶意网站或点击了包含恶意代码的链接。攻击者会在恶意网站中注入代码,向目标网站发送伪造请求。当用户访问恶意网站时,攻击者就可以利用用户的身份信息向目标网站发送请求,实现攻击目的。

CSRF一句话概括:攻击者盗用(伪造)受害者的身份,以受害者的名义向服务器发送恶意请求,而这种恶意请求在服务端看起来是正常请求

1.2 CSRF攻击的本质

在 CSRF 攻击中,攻击者诱使用户的浏览器发起一个恶意请求,本质上是借助用户的凭证以用户的身份去执行特定操作。在用户访问攻击者构造的恶意页面时,如果此时浏览器访问第三方站点(带有 CSRF 漏洞的网站) 带上了第三方 Cookie,那么第三方站点会认为这是一个已登录的用户过来访问,浏览器就能顺利完成相应的操作,所以它叫“跨站请求伪造”。在整个攻击过程中,攻击者并没有拿到受害者的身份凭证,也拿不到操作后的返回结果,他只是诱使受事者发出了一个特定的请求在大部分情况下,CSRF 攻击过程是,访问当前站点时向第三方站点发起请求并携带了第三方Cookie。但是在部分场景中,在存在 CSRF 漏洞的网站上就可以向当前站点发起请求,虽然此时并没有“跨站点”,此时也不存在第三方 Cookie,但也叫 CSRF 攻击。

1.3 CSRF的危害

以受害者名义发送邮件,发消息,盗取受害者的账号,甚至购买商品,虚拟货币转账,修改受害者的网络配置(比如修改路由器DNS、重置路由器密码)等。造成的问题包括:个人隐私泄露、机密数据泄露、用户甚至企业的财产安全等

二、CSRF漏洞探测

2.1 检测Referer字段

检测CSRF漏洞是一项比较繁琐的工作,最简单的方法就是抓取一个正常请求的数据包,去掉Referer字段后再重新提交,如果该提交还有效,那么基本上可以确定存在CSRF漏洞。

Referer字段:根据HTTP协议,在HTTP头中有一个字段叫Referer,它记录了该HTTP请求的来源地址。

2.2 CSRF漏洞利用条件

1、被害用户已经完成身份认证

2、新提交的请求不需要重新身份认证或确认机制

3、攻击者必须了解Web 请求的参数构造

4、诱使用户触发攻击的指令(社工)

2.3 获取web请求参数构造的方法

1.注册同网站的账号

2.搭建同网站的本地测试环境

3.使用FUZZ模糊测试,爆破参数

、CSRF防御

CSRF漏洞防御主要可以从两个层面进行,即服务端的防御、用户端的防御、

3.1 服务端防御

3.1.1 验证HTTP Referer字段

3.1.2 在请求地址中添加token并验证

3.1.3 同源策略

3.1.4 在HTTP头中自定义属性并验证

3.1.5 使用验证码或者密码确认方式进行

3.2 客户端防御

养成良好的上网习惯

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值