CSRF学习

1、什么是csrf

  • CSRF(Cross Site Request Forgery),中文名称:跨站请求伪造,缩写为CSRF
  • 攻击者盗用了你的身份,以你的名义发送恶意请求
  • CSRF是跨站请求伪造,不攻击网站服务器,而是冒充用户在站内的正常操作。
  • 通常由于服务端没有对请求头做严格过滤引起的。
  • CSRF会造成密码重置,用户伪造等问题,可能引发严重后果。

很常见但是危害不算很大,基本很难getshell,条件苛刻,但是可以用来添加管理员

伪造URL后发给管理员或目标,使其在cookie的有效时间完成点击

该漏洞使用起来过于复杂,首先要知道目标模块请求包具体参数,其次保证对方cookie未过期,还要保证对方能够点击

CSRF是借用户的权限完成攻击,攻击者并没有拿到用户的权限,而XSS是直接盗取到了用户的权限,然后实施破坏。

image-20220416150333496

2、csrf原理

怎样才能实现CSRF呢?

  • 天时:www.xxx.com这个网站在用户修改个人的信息时没有过多的校验,导致这个请求容易被伪造;

    因此,我们判断一个网站是否存在CSRF漏洞,其实就是判断其对关键信息(比如密码等敏感信息)的操作(增删改)是否容易被伪造。

  • 地利:小绿点击了小黑发给的链接

  • 人和:并且这个时候小绿刚好登录在购物网上

CSRF和XSS

CSRF高级方式:
当然,如果小黑事先在xxx网的首页如果发现了一个XSS漏洞,则小黑可能会这样做:欺骗小绿访问埋伏了XSS脚本(盗取cookie的脚本)的页面,小绿中招,小黑拿到小绿的cookie,然后小黑顺利登录到小绿的后台,小黑自己修改小绿的相关信息。
所以跟上面比一下,就可以看出CSRF与XSS的区别:CSRF是借用户的权限完成攻击,攻击者并没有拿到用户的权限,而XSS是直接盗取到了用户的权限,然后实施破坏
CSRF与XSS最大的区别就在于,CSRF并没有盗取cookie而是直接利用

网站如果要防止CSRF攻击,则需要对敏感信息的操作实施对应的安全措施,防止这些操作出现被伪造的情况,从而导致CSRF。比如:
–对敏感信息的操作增加安全的token;
–对敏感信息的操作增加安全的验证码;
–对敏感信息的操作实施安全的逻辑流程,比如修改密码时,需要先校验旧密码等。

3、dvwa靶场

第一关low

攻击步骤

  • 抓包修改数据包

  • 将修改过的数据包做成一个链接,哄骗用户点击重新发送即可

  • 注意:现实攻击场景下,这种方法需要事先在公网上传一个攻击页面,诱骗受害者去访问,真正能够在受害者不知情的情况下完成CSRF攻击。

第二关mid

加入了referer的验证

image-20220416152311009

修改referer证据链

第三关high

加入token

High级别的代码加入了Anti-CSRF token机制,用户每次访问改密页面时,服务器会返回一个随机的token,向服务器发起请求时,需要提交token参数,而服务器在收到请求时,会优先检查token,只有token正确,才会处理客户端的请求。对于user_token,而且每次修改密码,它都是变化的。因此,使用low和Medium的方法无效

绕过方式利用xss绕过
用xss脚本获得用户的token

用token进行修改密码操作

<iframe src="../csrf" onload="alert(frames[0].document.getElementsByName('user_token')[0].value)"

加入token,利用这个token和Hackbar发送请求

第四关impossible

加入了旧密码,很难绕过了

csrf防御

对敏感信息的操作增加安全的token;
对敏感信息的操作增加安全的验证码;
对敏感信息的操作实施安全的逻辑流程,比如修改密码时,需要先校验旧密码等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Shadow丶S

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值