CSRF常见攻防姿势总结
什么是CSRF攻击?
CSRF(跨站点请求伪造),就是攻击者诱使用户访问了一个页面,以该用户身份在第三方站点里执行相关操作。
比如:登陆了sohu博客后,只需要请求这个url,就能够吧编号为“156713012”的博客文章删除。
http://blog.sohu.com/manage/entry.do?m=delete&id=156713012
http://www.a.com/csrf.html
<img src="http://blog.sohu.com/manage/entry.do?m=delete&id=156713012" />
CSRF攻击相关基础之-浏览器的cookie策略
浏览器所持有的Cookie有两种:session cookie(临时cookie)、third-party cookie(本地cookie)。区别在于本地cookie 设置cookie的Expire时间,过期失效,临时cookie浏览器关闭后失效。
攻击方式
攻击者构造攻击环境,伪造GET/POST请求,诱使用户访问访问。比如<img>、<iframe>、<script>、<link>,自动发送伪造请求。
CSRF的防御
验证码:最简洁而有效的防御方式。CSRF攻击的过程往往是用户不知情的情况下构造了网络请求。而验证码,则强制必须与应用交互。但不是所有的操作都加上验证码,因此使用场景有限。
Referer Check 最常见的应用是“防止图片盗链”,检查referer来源,只有自己域名下的才能通过。缺陷在于服务器并非什么时候都能取到referer,如https。
anti CSRF Token 业界一致的做法是使用一个token,使用cookie值加密(MD5),因为攻击伪造网站无法获取被攻击网站的cookie,因此也就无法构造出完整的URL实施CSRF攻击了。
使用原则:Token生成一定要随机
攻击点
referrer绕过
无验证
http: //xxx.weibo.com(.cdxy.me)
(http: //cdxy.me?)http: //xxx.weibo.com
捕捉token
利用
本身来说CSRF漏洞是广泛存在的,一般将其归类为“低危”,但只要利用的姿势够牛,CSRF也会有大作为。除了常见的“刷粉丝”“发消息”“改信息”“蠕虫”等,还可以配合其他漏洞解锁更多好玩的利用姿势。
账号关联
如果绑定请求未做csrf防护,攻击者可以构造恶意请求让用户绑定了攻击者的账号。这样攻击者登录他自己的账号后就可以得到用户在其他平台的权限。
一种蠕虫
第三方登录
XSS+CSRF
防护
核心思想
有关CSRF的防御的核心思想可以总结为一句话:
在请求里cookies以外的位置,放入攻击者所不能伪造和复现的信息
三个条件
随机性——不可预测
一次性——每次请求后要更新,不能共用、复用
保密性——敏感操作使用post,防止参数在url中泄露
防护方法
服务端
检查referrer
验证token
在html头自定义属性并验证
客户端
可使用js做一定程度上的防御,可以提高攻击成本,详细请参考
利用Window.Opener绕过CSRF保护
其他逻辑策略
在执行关键操作时(如修改密码,修改绑定邮箱手机等),除了要做CSRF的token防护之外,还应该要求重新输入当前账号密码,并加入验证码。
关键操作只接受post请求,只接受https请求
文章来源:
https://blog.csdn.net/qq_35440678/article/details/52628865?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
https://blog.csdn.net/cd_xuyue/article/details/50774163?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.nonecase
如果觉得文章对你有帮助,请点击右下角“在看”