CSRF跨站请求伪造

介绍

CSRF(Cross-site request forgery)跨站请求伪造,是指利用受害者尚未失效的身份认证信息( cookie、会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下以受害者的身份向(身份认证信息所对应的)服务器发送请求,从而完成非法操作(如转账、改密等)

  • CSRF属于业务逻辑漏洞,在服务器看来,所有的请求都是合法正常的。
  • XSS:客户信任服务器
  • CSRF:服务器信任客户(经过身份验证的)
  • 前提:
    1. 用户必须登录
    2. 服务的没有二次认证
    3. 被害者是不知情的

原理

  1. 受害者用密码123正常登陆服务器。
  2. 服务器通过受害者的身份验证后返回session值。
  3. 攻击者伪造一个修改密码为456的链接URL并发给受害者。
  4. 受害者点击修改密码的URL,密码由123改为了456。
  5. 攻击者等待一段时间后用密码456去尝试登陆。若成功说明已修改对方密码,若失败则说明对方已发现并改回密码。

攻击流程

利用方式(一)

1、普通用户 vince登录服务器。

2、攻击者使用allen用户登录

 3、修改数据包,将手机号换成11111111111

4、将构造好的URL发送给用户,用户点击后,手机号被修改

192.168.5.130/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=boy&phonenum=11111111111&add=nba+76&email=allen%40pikachu.com&submit=submit

利用方式(二)

1、使用burpsuite攻击中的CSRF poc进行攻击

2、将构造好的POC放到vps中

3、访问vps,点击按钮,信息被更改

利用方式(三)

1、利用超链接进行CSRF攻击,修改住址

2、用户点击超链接后,住址被修改

利用方式(四)

1、使用404页面进行CSRF攻击,这种方式可以使用户不知情。构造URL,将邮箱修改123@abc.com

2、将构造好的页面放到vps上,用户访问页面,会出现404,这种情况下,一般都会关闭页面。

3、再次登录allen用户,发现邮箱已经被修改

 

 XSS和SCRF组合拳

1、插入存储型XSS,打开vps下的html文件

2、普通用户kobe登录服务器

 

3、kobe用户访问到含有存储型XSS的页面,页面跳转到构造好的404页面

 

kobe再次登陆后,发现个人信息被修改

 

这种方式避免了攻击者发送URL链接诱骗用户点击,可以使用户卸下防备心理。

危害

1、CSRF漏洞会导致受害人在不知情的情况下向论坛发帖子、订阅邮件列表、网购或股票交易,或变更用户名或口令。对受到防火墙保护的所有web应用程序而言,CSRF攻击都能绕过防火墙攻击web应用。
2、CSRF漏洞还可以和XSS等漏洞结合使用,从而进一步加大了该漏洞的危害。
3、伪造HTTP请求进行未授权操作:
篡改、盗取目标网站上的重要用户数据。
未经允许执行对用户名誉或者资产有害的操作,比如:散播不良信息、进行消费等。
如果通过使用社工等方式攻击网站管理员,会危害网站本身的安全性。
4、作为其他攻击向量的辅助攻击手法,比如配合XSS。
5、传播CSRF蠕虫。

防御方式

1、二次认证

2、加入token验证、referer验证

3、增加验证码验证

原文地址:https://www.cnblogs.com/wszgg/p/14190864.html