Web安全基础学习:CSRF跨站请求伪造漏洞

理论基础

  • CSRF漏洞介绍

    跨站请求伪造(Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。

  • CSRF漏洞原理

    攻击者通过一些技术手段欺骗用户的浏览器去访问一个用户自己曾经认证过的网站并执行一些操作(如发邮件,发消息,甚至财产操作如转账和购买商品)。由于浏览器曾经认证过,所以被访问的网站会认为是真正的用户操作而去执行。这利用了web中用户身份验证的一个漏洞:简单的身份验证只能保证请求是发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。

  • CSRF成因拓展之同源策略

    1995年,同源策略由Netscape公司引入浏览器。目前,所有浏览器都实行这个策略。最初,他的含义是指:A网页设置的Cookie,B网页不能打开,除非这两个网页同源。

    所谓同源指的是三个相同:协议相同、域名相同、端口相同。

    详细了解:CSDN-前端网络安全必修 1 同源策略和CSRF

  • CSRF攻击流程
    1. 用户正常登录web服务,并一直保持在线。
    2. 服务器返回用户凭证Session,并将其保存在Cookie中。
    3. 攻击者生成payload,并放置在用户可访问的地方。
    4. 攻击者诱导用户点击在第3步放置的链接,此时用户一直在线,且是用同一浏览器打开(保证Cookie未失效)。
    5. 用户点击恶意链接。
    6. 恶意链接向服务器请求,由于用户Cookie未失效,就携带用户Cookie访问服务器。
    7. 服务器收到请求,此时用户Cookie未失效,并判定为用户发起的正常请求,并做出响应。
  • CSRF漏洞危害

    非法操作、数据泄露、拒绝服务等。

  • CSRF与XSS的区别
    1. 攻击方式不同:

      • CSRF攻击利用Web应用程序对请求的不完全验证,攻击者通过欺骗用户在已经登录的Web应用程序中执行恶意操作。
      • 而XSS攻击则是通过在Web页面中注入恶意脚本来实现攻击,当用户浏览受到攻击的页面时,恶意脚本会被执行,从而盗取用户的信息或执行其他恶意操作。
    2. 目标不同:

      • CSRF攻击的目标是利用用户的身份执行恶意操作,例如,在用户不知情的情况下,利用用户的账户进行转账或修改密码等操作。
      • 而XSS攻击的目标则是窃取用户的信息,例如,窃取用户的cookie、用户名和密码等敏感信息。
    3. 防御方式不同:

      • CSRF攻击的防御需要验证请求的来源和使用随机令牌等方法进行身份验证,避免未经授权的操作。

      • 而XSS攻击的防御需要对输入的数据进行过滤和编码,避免恶意脚本的注入。

  • CSRF漏洞防御
    1. 添加校验Token或CSRF Token
    2. 检查Referer字段
    3. 添加其他自定义字段作为前端二次验证,例如时间戳
    4. 令牌同步模式(Synchronizer token pattern)
    5. 使用验证码或其他二次验证方式
    6. 使用SameSite Cookie

实践学习

漏洞环境以Pilot靶场为例:下载地址与部署教程

  1. 进入漏洞页面,登录admin账号:

    l1-1

  2. 抓包,点击确认修改按钮:

    l1-2

  3. 发现是GET请求;删除请求头中Referer和Origin字段,不影响发包;且认证信息通过Cookie存储,而不是Token,很容易造成GET型的CSRF。

  4. 在Burp中右键请求包,选择相关工具中的生产CSRF POC,修改参数phone的值为114514,点击在浏览器中测试:

    l1-3

  5. 复制链接后,在第一步登录admin后的浏览器页面中打开,发现修改成功:

    l1-4

  6. 回到漏洞页面,重新登录后,发现数据已经被修改:

    l1-5

  • 9
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值