网络安全那点事-CSRF篇

有人说:技术分享就像找女朋友一样,不是靠追的,而要靠吸引!

那继续分享一些安全案例!

安全案列介绍

CSRF攻击案列


  • 2007年Gmail的CSRF漏洞

  • 2019.5.10漏洞上报:用Gmail或G-Suite账户来验证新创建Facebook账户时存在的CSRF令牌验证机制漏洞,攻击者利用该漏洞,可在验证新创建Facebook账户时,以最小用户交互方式用受害者邮箱验证其注册的Facebook账户,实现间接CSRF攻击。漏洞最终获得Facebook官方$3000美金奖励。

CSRF(跨站请求伪造)介绍

Cross-site request forgery 简称为“CSRF”,在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接),然后欺骗目标用户进行点击,用户一旦点击了这个请求,整个攻击就完成了。所以CSRF攻击也成为"one click"攻击。 很多人搞不清楚CSRF的概念,甚至有时候会将其和XSS混淆,更有甚者会将其和越权问题混为一谈,这都是对原理没搞清楚导致的。

CSRF攻击原理

一次CSRF攻击

从上图可以看出,要完成一次CSRF攻击,受害者必须依次完成两个步骤:

1. 登录受信任网站A,并在本地生成Cookie。
2. 在不登出A的情况下,访问危险网站B。

看到这里,你也许会说:“如果我不满足以上两个条件中的一个,我就不会受到CSRF的攻击”。是的,确实如此,但你不能保证以下情况不会发生:

  • 你不能保证你登录了一个网站后,不再打开一个tab页面并访问另外的网站。
  • 你不能保证你关闭浏览器了后,你本地的Cookie立刻过期,你上次的会话已经结束。(事实上,关闭浏览器不能结束一个会话,但大多数人都会错误的认为关闭浏览器就等于退出登录/结束会话了……)
  • 上图中所谓的攻击网站attack.com,可能是一个存在其他漏洞的可信任的经常被人访问的网站。

CSRF要讲究天时、地利、人和

CSRF与XSS的区别:

XSS是利用合法用户发起请求(向网站注入js代码),而CSRF是伪造成合法用户发起请求。

CSRF入侵

提前准备
  1. 抓包工具,这里选取Burp Suite
  1. 受害者(目标网站和受害人)
    pikachu漏洞平台
攻击过程
  1. 本地搭好 Pikachu
  2. 步骤图解
    (1).账密登陆,csrf攻击充分条件之一,这里选取测试账密kobe/123456


    账密登陆

    (2).登陆后正常看到登录人信息,点击修改个人信息操作


    详情和修改

    (3).BurpSuite抓包开启
    BS抓包

    (4).修改个人信息页面点击submit按钮,Burpsuite会弹出抓取到的包
    HTTP包信息

    (5).Action-》Engagement tools-》Generade CSRF PoC 生成csrf攻击代码


    生成CSRF页面

    (6).做你想做的内容变更,比如这个性别改成boyboy,然后Regenerate-》Test in browser
    生成CSRF代码

    (7).Copy 弹出的链接内容到配置代理的浏览器(Pikachu所在浏览器)打开
    BS页面地址

    (7).这个Submit request其实就是钓鱼点击站点的例子,当然实际上,得做成迷惑性较高的样式,比如中奖、抽奖、劲爆热点事件图片、弹窗等
    钓鱼页面

    (8).受害者点击后在Pikachu会发现信息被篡改,表明CSRF攻击成功
    成功篡改

CSRF防御

因此,网站如果要防止CSRF攻击,则需要对敏感信息的操作实施对应的安全措施,防止这些操作出现被伪造的情况,从而导致CSRF。比如:

  • Referer Check(请求来源检查)
  • 对敏感信息的操作增加安全的token
  • 对敏感信息的操作增加安全的验证码
  • 对敏感信息的操作实施安全的逻辑流程,比如修改密码时,需要先校验旧密码等。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容