CSRF-漏洞分析

Posted 佛系安全

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CSRF-漏洞分析相关的知识,希望对你有一定的参考价值。

简介:攻击者可伪造当前用户的行为,让目标服务器误以为请求由当前用户发起,并利用当前用户权限实现业务请求伪造。


XSS与CSRF区别在于,XSS是利用站点信任用户,CSRF则是伪造用户行为

攻击方式:攻击者伪造一个页面,在页面中采用一些诱导行为,诱使用户点击以实现触发。


满足条件:

1、用户登录状态

2、伪造的链接与正常应用请求链接一致

3、后台未对用户业务开展合法性做校验


危害:

1、盗取信息

2、在用户不知情的情况下做违法操作


修复方案:

1、添加中间环节,当用户填写完内容后点击submit,服务器会接收到内容,并弹出一个确认框,让用户进行二次确认。

2、添加验证码,用户在提交内容时需要输入验证码,利用验证码来确认是否为当前用户发起的请求。

3、验证referer,可通过验证referer值是否合法,既通过验证请求来源的方式确定此次请求是否正常。

4、在建设web系统时利用token来识别当前用户身份的真实性。(token必须为一次性,在每次用户请求时均重新生成token并在客户端进行更新,token需有较强的随机性,避免采取简单的可预测的方式,使攻击者猜测出token的生成规律,导致token失效)



referer:当浏览器向web服务器发送请求的时候好,一般会带上referer,告诉服务器我是从哪个页面链接过来的。



token:用于验证用户身份的一种工具,是一个客户端令牌

流程:

客户端使用用户名跟密码请求登录

服务端收到请求,去验证用户名与密码

验证成功后,服务端会签发一个token,再把这个token发送给客户端

客户端收到token以后可以把它存储起来,比如放在cookie里

客户端每次向服务端请求资源的时候需要带着服务端签发的token

服务端收到请求,然后去验证客户都按请求里面带着的token,如果验证成功,就向客户端返回请求的数据



cookie:客户端保持状态,cookie内容主要包括名字、内容、创建时间、过期时间、路径和域,服务器在对用户登录请求进行检验并通过后,生成唯一的cookie并发送给用户,之后用户在此网站中执行任意点击功能,浏览器都会将服务器生成的cookie一并发送,从而达到区分用户的目的。

发给顾客一张卡片,上面记录着消费的数量,一般还有个有效期限。每次消费时,如果顾客出示这张卡片,则此次消费就会与以前或以后的消费相联系起来。这种做法就是在客户端保持状态。



session:服务器端保持状态,session内容存储在服务器端,远程用户无法直接修改session文件的内容,存储一个a变量来判断用户是否登录,首次验证通过后设置“a”值为true,以后判断该值是否为true。假如不是,转入登入页面。

发给顾客一张会员卡,除了卡号之外什么信息也不纪录,每次消费时,如果顾客出示该卡片,则店员在店里的纪录本上找到这个卡号对应的纪录添加一些消费信息。这种做法就是在服务器端保持状态。


以上是关于CSRF-漏洞分析的主要内容,如果未能解决你的问题,请参考以下文章

CSRF漏洞分析利用及防御

CSRF漏洞

[代码审计] LvyeCms CSRF漏洞分析

Redis CSRF漏洞分析及云Redis安全措施介绍

CSRF进阶之打造一个检测CSRF漏洞的脚本

-CSRF漏洞