CSRF学习

CSRF漏洞简介

  • csrf跨站请求伪造,是一种挟持用户在当前已进登录的WEB应用程序上执行非本意的操作的攻击方式。
    与跨站脚本(XSS)相比,XSS利用的是用户对于网站的信任,CSRF利用的是网站对用户网页浏览器的信任。最大的区别是CSRF没有盗取用户的cookie,而是直接利用了浏览器存储的cookie让用户去执行某个动作。
    【例如说是某用户在登录淘宝进行购买东西时,若存在CSRF漏洞,可以利用漏洞来发送一个恶意链接,用来有道在登录状态的用户进行点击,来完成对用户信息的篡改或非法操作】
  • CSRF危害

利用网站权限校验方面的漏洞在用户没察觉的情况下发送请求,达到伪装用户的目的。利用CSRF实现的攻击主要有:

  1. 攻击者可以欺骗受害者用户完成该受害者允许的任一状态改变的操作,比如账号细节,完成购物,注销甚至登录等操作;
  2. 获取用户的隐私数据
  3. 配合其他漏洞进行攻击
  4. CSRF蠕虫攻击
  • CSRF分类
  • GET型
    危害最大,但也是最简单的一种类型,只要一个http请求即可,这种类型又可以分为手动型和自动型,手动型就是要自己去点击才会发起攻击(例如各种URL链接,a标签包裹的DOM元素)自动型不要我们去点击,只要进行访问具有某些标签的网站就会发起攻击(例如存在
    <img src ="http://www.xxx.com/transaction.php?id=1&amount=111" />
    <script src=" http://www.xxx.com/transaction.php?id=1&amount=111"> </script> "
    因为标签需要访问指定的URL才能发挥作用,所以发送http请求,又因为标签是网页加载的时候就会自动发送http请求,所以网页加载CSRF时就会自动发送,要实现CSRF就必须实现跨站访问,但AJAX不能实现CSRF,因为AJAX有同源策略(必须协议,域名和端口号全部一致)。
  • POST型
    post将参数放在http请求体力发送给服务器,所以post型的CSRF要用post的方式进行全球。常用的方式一般有两:AJAX和表单,但AJAX有同源策略。所以用表单的方式。例如
    <form action="http://www.xx.com/transaction.php" method="post"><input type="text" name="id" value="3"/>
    <input type="text" name="amount" value="1000" />
    <input id="form" type="submit">
    </form>
    <script> document.getElementByld("form").click()</script>
  • CSRF利用条件:

1、用户已进完成身份认证
2、新的请求不需要进行重新认证或确认机制
3、攻击者必须了解web请求的参数构造
4、引诱用户触发攻击的指令(可以利用社工进行)

  • CSRF挖掘方式

1、密码修改处
2、点赞
3、转账
4、注销
5、删除
6、论坛交流、用户中心、反馈留言、交易管理、后台管理
有交互数据传输的地方就有可能存在CSRF,但是挖掘时就好进行二次判断验证有无t或用token等进行快速判断

  • CSRF修复方式

校验referer来源
添加身份验证
添加随机token
添加密码认

实验与自动化工具的使用

  • pikachu靶场实验
    1、GET型:利用两个浏览器登录,模拟两个用户:

在这里插入图片描述

在这里插入图片描述

2、修改某一用户的信息,利用bp进行抓包:
在这里插入图片描述
在这里插入图片描述
3、在另一用户处使链接:
在这里插入图片描述

在这里插入图片描述

2、POST型:
用bp进行抓包:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

然后在登录用户二的浏览器中打开此html文件:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值