黑客常用的CSRF跨站攻击与防范-实例讲解

栏目: 编程工具 · 发布时间: 5年前

内容简介:CSRF(Cross-site request forgery),是中文:跨站请求伪造的缩写,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。CSRF出现的时间已经很久远了,但危害到现在还是十分的常见。这种攻击方式在2000年左右国外就已经发现了,国内互联网起步较晚,到06年才开始被关注。到底这个攻击方式有多普遍呢?YouTube跟百度都被爆出来过。

CSRF(Cross-site request forgery),是中文:跨站请求伪造的缩写,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。

CSRF出现的时间已经很久远了,但危害到现在还是十分的常见。这种攻击方式在2000年左右国外就已经发现了,国内互联网起步较晚,到06年才开始被关注。到底这个攻击方式有多普遍呢?YouTube跟百度都被爆出来过。

黑客常用的CSRF跨站攻击与防范-实例讲解

到底什么是CSRF跨站攻击呢?

有些人可能XSS跟CSRF经常分不清,我们先来对比一下XSS跟CSRF的区别:

  • XSS:‍‍攻击者发现XSS漏洞——构造代码——发送给受害人——受害人打开——攻击者获取受害人的cookie——完成攻击
  • ‍‍CSRF:‍‍攻击者发现CSRF漏洞——构造代码——发送给受害人——受害人打开——受害人执行代码——完成攻击

我们可以看出CSRF比XSS的利用更高级,直接可以略过获取cookie的步骤,也就是说,攻击者自己压根就不需要参与,受害人自己造成的这种局面。就好比攻击者将汽油倒在受害者的门口,受害者自己扔了烟头引起的火灾,很难被发觉是谁攻击的。

这里我们简单举个例子:

黑客常用的CSRF跨站攻击与防范-实例讲解

从上图不难发现,一次CSRF攻击要完成5步:

  • 登录合法网站
  • 合法网站通过验证,受害者储存合法网站的cookie
  • 在不登出的情况下,访问受害者恶意构造的网站B
  • 恶意网站发一个request请求访问A网站
  • 受害者带着A的合法cookie访问了A并执行了恶意操作

以上就是一个大体流程,可能看起来有点生涩,那我们举个例子说明。

我们假设个前提:

账户的余额修改用GET请求money=后面+为充值-为支出,如下:

www.a.com?money=+1000(充值1000) 

受害人刚刚访问了自己的余额钱包(合法)并生成了cookie,然后这个时候收到了某人给他发的连接www.b.com,且里面有一张图片,且图片里面存储着恶意代码,如:

<img  src="http://www.a.com?money=-1000"> 

虽然你刚才关闭了钱包的页面,但你点开链接访问这张图片的时候,你的浏览器会解析这句代码,通过你刚才访问合法钱包网站生成的cookie,去再次访问并执行money=-1000,扣除1000的余额。

这里再补充一点,我们都知道通常我们上网,比如登录QQ空间,直接点关闭后,然后再打开同样是可以继续访问不用输入用户名密码的,之所以可以继续访问就是因为你储存的cookie。

黑客常用的CSRF跨站攻击与防范-实例讲解

以上简单的说了一下GET请求,但实际应用上POST请求也不在少数,这时候我们可以把前台表单的method方式设置为POST,然后继续试验,当后台使用$_REQUEST去获取请求参数的时候,通常也会被干掉,因为:

$_REQUEST既可以获取GET请求的数据,也可以获取POST请求的数据,这就造成 了在后台处理程序无法区分这到底是GET请求的数据还是POST请求的数据(也就是说你传POST也行传GET也行)

为什么会执行成功?

CSRF 攻击之所以能够成功,是因为黑客可以完全伪造用户的请求,而且请求中所有的用户验证信息都是存在于 cookie 中,所以黑客可以在不知道这些验证信息的情况下直接利用用户自己的 cookie 来通过安全验证。

如何防范?

  • 在请求地址中加入token验证:当攻击者带着构造好的信息来的时候,通常不会知道我们构造的token是什么,我们可以通过验证token的真实性,如果为假就返回错误,如果为真就认为是正常用户访问。
  • 在HTTP头中定义属性验证:我们通过XMLHttpRequest 这个类,可以一次性给所有该类请求加上 csrftoken 这个 HTTP 头属性,并把 token 值放入其中。
  • 验证HTTP Referer:根据 HTTP 协议,在 HTTP 头中有一个字段叫 Referer,它记录了该 HTTP 请求的来源地址,我们的合法地址为www.a.com?money=+1000,这样就可以正常访问,但如果前面的地址变为www.b.com就被识别出来了。

以上所述就是小编给大家介绍的《黑客常用的CSRF跨站攻击与防范-实例讲解》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

一只小鸟告诉我的事

一只小鸟告诉我的事

[美]比兹·斯通 / 顾雨佳 / 中信出版社 / 2014-11 / 59.00元

比兹•斯通,无疑是自乔布斯后的又一个硅谷奇迹! 70后的他,出身贫苦,一无所有,却又特立独行,充满智慧。从他这本自传中,我们知道他和乔布斯一样,大学都没读完就辍学做了一名图书封面设计师,然后创建了赞架(Xanga)网站,又进了谷歌。在经济上打了翻身仗后,他毅然放弃了安逸的生活,从零开始,和朋友创建了世界最知名的社交平台推特(Twitter)。当推特奇迹般地改变着世界时,他又悄然离去,创建了自......一起来看看 《一只小鸟告诉我的事》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具