CSRF基础学习

CSRF

上一篇博客说的是XSS跨站脚本攻击,现在说的是另一种跨站攻击,CSRF(Cross-Site Request Forgery),跨站请求伪造。

1、概述

正如其名,CSRF是伪造请求,就是冒充用户在站内进行正常操作。我们知道,绝大多数网站是通过Cookie等方式辨别用户身份(包括使用服务器端Session的网站,因为Session ID也是保存在Cookie里面),再予以授权。这就是为什么要保护好用户的Cookie。所以要想要伪造用户的正常操作,就是要偷Cookie了,那么可能就和上一篇里面说过的XSS优点关联了,利用XSS攻击获取被攻击者的Cookie,在或者就是使用链接欺骗等途径,让用户在本机发起用户所不知道的请求,这里说的本机是拥有Cookie的浏览器端。

2008年时由多个国内外大型社区和交互网站爆出CSRF漏洞,也是让大家聚焦这个漏洞。其实这种攻击方式在2000年就已经被国外的安全人员提出,但是在国内,直到2006年才开始被关注。

2、分类

CSRF漏洞的攻击一般分为站内和站外两种类型。

CSRF站内类型的漏洞一般都是因为程序员滥用 $_REQUEST类变量造成的,一些敏感数据本来应该使用POST请求传参,但是因为使用了 $_REQUEST等变量,程序也可以接受GET类型请求传参,这样无形之中就给攻击者提供了使用CSRF的条件,一般攻击者只要把预测好的请求参数放入站内的一个帖子或者留言的图片链接里,受害者浏览了这样的页面就会被强制发起请求。

CSRF站外类型的漏洞其实就是外部数据提交问题,一般程序员会考虑给一些留言评论等的表单加上水印防止SPAM问题,但是为了用户的体验性,一些操作可能没有做任何限制,这是很危险的做法,因此攻击者可以向预测好请求的参数,在站外的Web页面里编写JavaScript脚本伪造文件请求或和自动提交的表单来实现GET、POST请求,用户在会话状态下单击链接访问站外的Web页面,客户端就被强迫发起请求。

3、原理

CSRF的原理如图

在这里插入图片描述

这就相当于受害者需要在登录A网站之后,再去访问B网站,而B网站一般就是一些钓鱼或者诈骗网站了。

4、攻击场景

这里举一个例子说明:

假设有一个银行A,它允许使用GET方式请求来转账操作,当然这就是个例子而已,现实生活中的银行当然不可能只用GET请求转账。大家就看看就好,别想太多。

操作:http://www.Abank.com/Transfer.php?tobankID=13&money=1000

这个时候危险的网站B的代码段中存在这样的一句代码:<img scr=" http://www.Abank.com/Tranfer.php?tobankID=13&money=1000" />

r.php?tobankID=13&money=1000" />`

那么当返回A银行时,就会发现账户上已经少了1000元。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值