CSRF漏洞

CSRF漏洞

CSRF(Cross-site request forgery,跨站请求伪造),这是一种对网站的恶意利用。这个漏洞实施与XSS不同,XSS是利用的是站内信任用户,而CSRF是通过伪装成被信任的用户访问受信任的网站。攻击者利用目标的身份信息,以目标用户的身份去执行某一些攻击者想完成的操作。CSRF能做到的很多,以目标用户的信息发送信息,邮件,窃取账户密码,购买商品等,所以CSEF对个人隐私和财产会有较大的威胁。不过被利用来做蠕虫攻击,刷SEO流量更多,

但是要实施起来需要满足两个条件

  • 目标用户已经登录了对应的网站,并且可以执行网站功能。
  • 目标用户访问了攻击者构造的URL。

 CSRF实施流程

一次完整的流程如下

  • 用户打开浏览器并且进入对应的网站A后,输入了账号密码进行了对应的验证,受信任的网站A这时候返回一个Cookie给用户
  • 在还能执行相关合法请求时,用户打开了攻击者的网站B,这时候网站B返回了对应的攻击代码,并且提出一个访问网站A的要求
  • 浏览器接收到了网站B的请求在用户不知情的情况下携带了网站A返回给客户Cookie信息,这时候网站A不知道这些请求是网站B的恶意代码操作,然后以客户的信息权限执行了攻击者想要完成的操作。

一个实例

1.当CAI想给TAO 转账的时候,通过网上银行进行转账,于是打开了受信任的银行BANK网站,并且已经输入了自己的账户和密码,得到一系列cookie和session信息后,点击转账10K,发出的HTTP请求类似于http://www.bank.com/pay.asp?user=CAI&money=10000&forTAO

2.黑客H自己也在这家银行拥有账户,所以他知道没准这是一个可以做破坏的方法,于是构造了一个类似的请求http://www.bank.com/pay.asp?user=CAI&money=10000&forH,当他构造这个请求并且发出后发现没有用,因为这个请求服务端验证出来这是来自黑客的H信息,于是黑客H想到了CSRF

3.这时候,黑客H构造了一个网站,并且在网站中构造了一个攻击代码. src"http://www.bank.com/pay.asp?user=CAI&money=10000&for H",然后通过美女图片引诱CAI去点击,然后刚刚登陆BANK的CAI就中招了,正常来说服务端的session是有时间限制的,但是因为他刚刚才访问了BANK,所以浏览器发出了这个http请求给BANK,并且携带了BANK返回的Cookie信息和session,然后这个攻击就完成了,钱就从CAI的用户转移到了黑客H的用户,当CAI发现钱被转走了去查发现这是一个来自自己的合法请求.......

如果想尝试可以去DVWA寻找对应靶机,或者依靠burpsuite的工具可以尝试。

CSRF的分类

http请求方法的GET和POST

有些用户修改信息是依靠GET,这时候的攻击者可以依靠GET的HTTP请求来写相应代码

POST的提交表单很多在网站购买或者需要支出的环境下,攻击者会找到网站处理的地址,然后构造相应代码诱导点击,提交表单更改数据,模拟一次用户的POST请求

CSRF防御

  • 验证请求的Referer值,如果Referer是以自己的子域或者本站开头的域名说明请求合法,如果是其他的就有可能是CSRF攻击,那么服务器选择拒绝服务,并且封锁ip,但是可能被绕过验证
  • 在请求中放入攻击者不能伪造的请求,因为请求携带了客户的cookie和session,所以可以以参数形式加入一个随机参生的token,并且验证token
  • 最简单直接的一点,别瞎点击不熟的网站就啥事没有.......

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值