网络安全之CSRF

CSRF概述

中文:跨站请求伪造

英文全称:Cross - site request forrgery

作用:强制终端用户在当前对其进行身份验证后的WEB应用程序上执行非本意的操作

这个漏洞的使用前提:必须要有一个用户登录了这个web应用

攻击的重点:伪造更改状态类的请求,比如修改密码或者是转账什么的

攻击路径:诱骗用户进行操作,或是强制用户进行操作

CSRf具备普遍性

举个栗子(来着简书链接如下,侵必删)

场景还原

下班后,手机没电关机之前的最后一个电话是我一朋友打来借钱的。无奈我只能打开Chrome,访问了某银行网站,好在我成功登录(手机接到验证码后便关机了)。

导航到转账页面,我输入好金额和对方账号,点击提交后,浏览器发起一个请求:

GET https://bank.cn/withdraw?account=sjyuan&amount=5000&for=FriendAccount

转账成功后,我开始浏览某论坛。某帖子有一个评论附了一张照片,我好奇地点击了照片,不料中招,链接地址是:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nPPlQS1c-1585406082494)(https://bank.cn/withdraw?account=sjyuan&amount=50000&for=HackerAccount)]

由于黑客足够黑加上我足够穷,此次转账5W失败(余额不足)。

你可能会纳闷,为什么这个转账操作会被服务器接受呢?

首先,黑客没有强制我去做什么,他也没法获取我从服务器上所获取的信息,他做的事情是向我访问的网站域名发出一个GET请求,而该请求会自动附上浏览器中该域(bank.cn)对应Cookie中的用户身份认证信息(Session未过期),所以服务器认为这是一个认证过的用户请求。更糟糕的是,服务器上没有留下黑客的任何非法攻击痕迹(当然收款方账号可能留下了技术之外的脚印),因为服务器认为该请求是我发起的。

作者:袁慎建

链接:https://www.jianshu.com/p/a3a8a3698d67

来源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

CSRF原理

诱惑信息:

可以写一个a标签附上转账链接和带有诱惑性的信息

比如:

离散算法题目解答
或是img标签也可以在src上写上转账链接

整理一下

首先小户(用户)登录银行网站

小黑(黑客)创建了一个假的网站

小户在登录银行后登录或点击小黑创建的网站也就是恶意网站

然后小黑的网站就将恶意代码载入到小户的客户端

再利用小户的客户端向服务器发生请求

用比较官方的话来说就是,黑客利用不法手段继承了受害者的身份和特殊权利,代表受害者执行非本意的恶意操作

原理:

多数站点,浏览器请求自动发送与站点关联的所有凭据,例如用户的会话cookie, IP地址,Windows域凭据等。因此,如果用户当前已对该站点进行了身份验证,则该站点将无法区分
受害者发送的伪造请求和受害者发送的合法请求。

常见的攻击方式:

以你名义发送邮件、发消息

盗取你的账号


甚至于购买商品

虚拟货币转账

等等

防御:

验证 HTTP Referer 字段

添加 token 并验证

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

结语:

我是想到什么写什么,没有提纲什么的,所以可能有点乱


该文章大多是来着我以前的笔记,有没有特意整理,还请各位老爷不要嫌弃

要深入的可以看一下袁慎建前辈这篇文章

其他链接

哔哩哔哩
会同步该博客发一些自制视频

微博
用的比较少

Github
一些源代码

知乎
不懂的我一般会在上面提问

简书
同步该博客内容相同

CSDN
同步该博客内容相同

个人联系方式

QQ:2446264712

微信:X15019749137

邮箱:[email protected]

有意添加请备注 啊啊啊啊

你可能感兴趣的:(笔记)