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标签附上转账链接和带有诱惑性的信息
比如:
<a. herf=“转账链接”>离散算法题目解答
或是img标签也可以在src上写上转账链接
整理一下
首先小户(用户)登录银行网站
小黑(黑客)创建了一个假的网站
小户在登录银行后登录或点击小黑创建的网站也就是恶意网站
然后小黑的网站就将恶意代码载入到小户的客户端
再利用小户的客户端向服务器发生请求
用比较官方的话来说就是,黑客利用不法手段继承了受害者的身份和特殊权利,代表受害者执行非本意的恶意操作
原理:
多数站点,浏览器请求自动发送与站点关联的所有凭据,例如用户的会话cookie, IP地址,Windows域凭据等。因此,如果用户当前已对该站点进行了身份验证,则该站点将无法区分
受害者发送的伪造请求和受害者发送的合法请求。
常见的攻击方式:
以你名义发送邮件、发消息
盗取你的账号
甚至于购买商品
虚拟货币转账
等等
防御:
验证 HTTP Referer 字段
添加 token 并验证
在 HTTP 头中自定义属性并验证
结语:
我是想到什么写什么,没有提纲什么的,所以可能有点乱
该文章大多是来着我以前的笔记,有没有特意整理,还请各位老爷不要嫌弃😁
要深入的可以看一下袁慎建前辈这篇文章
其他链接
哔哩哔哩
会同步该博客发一些自制视频
微博
用的比较少
Github
一些源代码
知乎
不懂的我一般会在上面提问
简书
同步该博客内容相同
CSDN
同步该博客内容相同
个人联系方式
QQ:2446264712
微信:X15019749137
邮箱:xiaoyangaichibaozi@yeah.net
有意添加请备注 啊啊啊啊