CSRF漏洞以及CSRF漏洞防范

在读者开始阅读这篇博客时,本人想提前声明几点。本篇博客目的在于本人的网络安全练习记录,对许多的知识点掌握和了解尚处于掌握练习过程中,了解并不透彻,不建议用作专业指导的博客阅读。

在这里插入图片描述
什么是CSRF?
CSRF:CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装成受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。

攻击者通过伪造一个链接,将链接发送给目标用户,欺骗用户点击,正如上述概念所说,该链接实际上是获取某网站信任用户信息的链接,目的是在用户电脑上登陆该网站,一旦用户点击了该链接,实际上攻击就完成了。
在这里插入图片描述
上图是具体例子举例,
首先攻击者现在一个网站注册个人id,之后选择去修改个人id,修改id的过程其实是向后台发送url的过程,通过抓包工具将这个请求数据包进行抓取。通过邮箱等方式发给一个正在使用同网站的用户,在不知情的情况下点击了该链接,就完成了攻击。

造成类似被攻击的原因。
网站的开发人员并没有做相关的防CSRF攻击的安全措施。导致相关的被信任人员的信息伪造。
再者就是,被攻击的人必须同时也登陆了相关的网站,同时还要点击了攻击者发送的链接,如果这两个前提攻击方没有达成,则无法构成CSRF。同时也正是因为这种原因,导致一些安全级别较低的网站开发在该问题上得不到重视。
同时CSRF与XSS的区别在于XSS获取到了用户权限,而CSRF并没有获得用户权限,而是借用用户的手去达成攻击的目的。

在这里插入图片描述
具体案例演示
以被攻击者的身份登录网站在这里插入图片描述
修改个人信息在这里插入图片描述
同时打开burpsuit在后台进行抓包。在这里插入图片描述
向后台发送的请求原文在这里插入图片描述
现在假设是攻击方拿到了此地址(这并不是问题,攻击方只要以自己的名义申请个人账户并进行信息更改就可以做到。)这时候修改成攻击者自己想要修改的信息。然后通过邮箱或聊天攻击发给被攻击方。
现在回到被攻击的一方,当收到连接时处于登陆状态。
被攻击方信息在这里插入图片描述
攻击方想要修改的信息在这里插入图片描述
当被攻击方在登陆状态登陆在本地操作端访问此URL时,实际上就相当于一个人名义访问了此URL,信息被修改。

CSRF漏洞的防范
知道了CSRF的原理,接下来的对于CSRF的防范便不难以理解。
正如前面所提到的,之所以会存在CSRF的威胁,一方面除了网站设计人员自身的安全设置因素以外,另一方面在于用户本身,用户操作了敏感的网站链接,导致用户个人信息被修改。但负责的说,这其实并不能因此就将其中的责任推卸到使用者身上。既然不能做到让每一位用户都具有能够辨别链接真伪的能力,所以就要求链接的安全等级有所提升,换句话而言就是要求链接不容易被伪造。
如何做到链接不容易被伪造
每一次请求,都分配一个随机码,既然是随机码,自然也就不存在相同,当两次不同的操作企图完成同一个目的的情况也就不会出现。
既然是随机码,就要做到足够随机。而后台验证系统需要做到每一次请求都对随机码进行验证。在这里插入图片描述
上图中的token就是我们说的随机码(也可以叫token值)
下图是关于生成token值的一个简单的随机函数在这里插入图片描述
大意是,当用户向后台发送页面请求时,系统会检查此请求是否携带有token值,如果携带了token值,就将其销毁掉,生成一个新的token值,复制到session中,这样也就实现了一对一的验证。每次页面一刷新,就会有新token的生成。

登陆用户信息页面在这里插入图片描述
对其中一个信息进行修改的同时,打开butpsuit进行一个后台的抓包。
数据包内容:在这里插入图片描述
可以看见,这里是存在一个token值,也就是说,每一次用户界面发过来的请求都会生成一个token值。页面刷新或更改都会导致它的变化。

我们知道,当打开一个页面时 ,通过具体URL,系统会访问固定的脚本文件。脚本中保护了调用生成随机token值的函数。每次提交时都将同时提交生成的token值,如果后台将此提交的token与session中的token中的值一样。那么系统就会允许提交,如果不一样,系统就不允许提交。所以说,当攻击者将自己的token值发给被攻击者,这个token值与被攻击者自己session中的token值是不同的,
具体的代码在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
所以对于CSRF的防护的具体总结为。
不要在客户端保护敏感信息
测试直接关闭,退出时执行过期机制,
这淡然就需要设置会话过期机制,比如15分钟内无操作,则自动登录超时
敏感信息的修改需要对身份进行二次认证,比如修改账号时,需要判断旧密码
敏感信息的修改使用post,而不get
通过http头部中的referer来限制原页面
增加验证码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值