前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >跨站请求伪造(CSRF)挖掘技巧及实战案例全汇总

跨站请求伪造(CSRF)挖掘技巧及实战案例全汇总

作者头像
Jayway
发布2019-09-29 17:37:55
6.2K0
发布2019-09-29 17:37:55
举报
文章被收录于专栏:卓文见识卓文见识

1、漏洞理解

Cross-Site Request Forgery跨站请求伪造漏洞,简称CSRF或XSRF,强制最终用户在当前对其进行身份验证的Web应用程序上执行不需要的操作,浏览器的安全策略是允许当前页面发送到任何地址的请求,所以用户在浏览无法控制的资源时,攻击者可以控制页面的内容来控制浏览器发送它精心构造的请求。

CSRF和SSRF的相似处在于请求伪造,区别在于CSRF伪造的请求是针对用户,SSRF针对的是服务器;和XSS相似处在跨站,都需要诱导用户点击恶意链接/文件,区别在于攻击效果及原理:CSRF基于Web的隐式身份验证机制,XSS本质是一种注入漏洞。漏洞原理如下:

根据请求方式的不同可以将漏洞分为:

1)资源包含(GET)

2)基于表单(POST)

3)XMLHttpRequest

2、挖掘技巧

2.1 常见功能

CSRF广义上存在于任何增删改操作中,根据经验常见的有:

1)冒充身份:订阅/关注/转发/投票操作,删除文件,更改配置等

2)帐户接管:密码修改,邮箱绑定,第三方帐户关联

3)其他:登录/注册/注销/注册

4)安全设计原则:CSRF登录后令牌未更新、登出后未注销等

2.2 缺少CSRF保护(Lack)

最简单的漏洞类型,没有任何针对CSRF的防护,也是挖掘中最常见的情形:关注每一个关键操作的请求包,若参数中没有CSRF令牌参数,篡改referer仍然返回正常,则大概率存在CSRF漏洞。

2.3 CSRF防护绕过(Bypass)

针对CSRF的两种防御分别有bypass手段:

1)Referer绕过

  1. 空referer绕过:其他协议(data:)或https跳http
  2. 包含referer:若只检查是否包含网址,只需在我们的网站上创建一个文件/文件夹即可,如 https://www.yoursite.com/https://www.theirsite.com/

2)CSRF-token绕过

  1. 删除令牌:删除cookie/参数中token,免服务器验证
  2. 令牌共享:创建两个帐户,替换token看是否可以互相共用;
  3. 篡改令牌值:有时系统只会检查CSRF令牌的长度;
  4. 解码CSRF令牌:尝试进行MD5或Base64编码
  5. 修改请求方法:post改为get
  6. 窃取token:重定向、XSS、web缓存欺骗、clickjacking等都可能导致token泄露

3、实战案例:

1)邮箱绑定——账户接管

KhanAcademy可汗学院邮箱绑定处未设置header头和token校验:

抓取post,构造XHR发包的HTML文件poc.html:

将poc.html文件放在自己的服务器上,诱使受害者点击HTML文件,F12查看实则借用受害者权限向服务器发送请求:

查看绑定邮箱,已经篡改为攻击者邮箱,下面可通过此邮箱进行密码修改,从而接管任意账户,这也是CSRF实战攻击的一般流程。

2)空Referer绕过

Xvideo网站评论处未使用token机制,仅验证了referer且未验证空referer情况(无referer字段),利用data:协议绕过,如我们访问

data:text/html,<script>top.location.href='http://www.google.com/';</script>则会显示referer为空,所以构造payload:

拦截查看请求包:

返回包显示,请求成功:

3)CSRF——其他漏洞的辅助

Self-XSS+CSRF=Reflected-XSS

评论、登录、文件上传等处的Self-XSS,结合CSRF可变为反射型XSS,如评论处:

触发XSS:

还有经典的登录XSS:

编写payload:

触发XSS:

4、漏洞防御:

1) 验证header字段

常见的是Referer和Origin,Referer容易绕过,且会包含有一些敏感信息,可能会侵犯用

户的隐私,而Origin字段代表最初请求,更建议使用。

2) Token令牌机制

当前最成熟的防御机制,但若存在验证逻辑及配置问题则存在绕过风险。Token的生成机制通常和session标识符挂钩,将用户的token与session标识符在服务端进行匹配。当下已经有很多开源库和中间件都可以实现token生成。

3) 验证自定义header

如基于cookie的csrf保护,验证cookie中的某些值和参数必须相等

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 卓文见识 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、漏洞理解
  • 2、挖掘技巧
  • 2.1 常见功能
  • CSRF广义上存在于任何增删改操作中,根据经验常见的有:
  • 3、实战案例:
    • 4、漏洞防御:
    相关产品与服务
    多因子身份认证
    多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档