当前位置: 首页 > article >正文

【web安全】CSRF漏洞攻击与防御

前言

总结,仅供学习。

csrf的理解

我们了解一个网站有修改信息,密码,添加删除管理,支付转账的功能之后。

通过抓包抓取对方修改操作的数据包样式,

然后在自己网站搭建一个指令。

当别人来访时,

如果正好打开着目标网站,就发送修改信息的数据包,从而实现被修改信息。

简而言之就是用目标的名义去发送数据包

csrf目前的存在情况

大型网站一般都是有防护的。

小中型的网站后台常有。

但是中小型网站,信息价值确实也就那样。。。。

csrf的前提条件

登录要修改信息的网站。

在不退出该网站的同时,再登录攻击网站。

(所以条件还是蛮苛刻的,不是太好用)

csrf的判断

可以自己创建个号来测试一下有没有该漏洞。

csrf与xss的区别

csrf与xss很多人会混淆

xss是在目标网站上写入javascript语句,盗取他的cookie然后登录自己改他的东西。

csrf是在不登陆的形况下,让他自己发送数据包改他自己的东西。

get型csrf入侵案例

本处用的是pikachu的靶场进行演示。

这里假设目标人物叫做kobe,我的名字叫做lili

kobe被黑需要做的

首先第一点,目标要登录网站。

 目标登录网站,获取了cookie。

因为,我们想要修改信息,转账支付添加管员等操作都是需要cookie的,所以本处必须要目标登录网址。

接下来是lili需要做的。

我们先要搞清楚这个修改信息是发送的什么样的数据包。

先改一下信息查看数据包

我们抓取数据包,看到这个标识部分是他修改的方式,他通过get的形式发送的修改数据包。

也就是说,lili如果想要改kobe的个人信息,lili要让kobe自己发送修改自己信息的数据包。

那么lili需要搭建一个网站,让kobe访问这个网站的时候,自动向目标网站发送这个数据包。

lili搭建网站的过程

如果没有服务器,自己用自己的phpstudy搭建也可以。

我们自己建一个网站,在网站中创建这个文件。

这时我们用我们自己的账号结合burp抓一下修改我们信息的包

右键burp找到这个按钮,按下去。

这个界面就可以生成我们csrf的攻击代码。

我们在url中修改想要修改的kobe的数据然后点左下角按钮刷新后复制这些代码。放入我们网站的文件中。

 我们做好网站后发给kobe等他来访问。

kobe视角

kobe登录着记录自己信息的网站,忽然发现lili发给他了一个网站,一点开发现一个按钮

其实这个是burp默认的,你完全可以改变成自己想要的形式。

这时kobe点击了按钮

瞬间发现自己的信息被人恶搞了

气不打一处来,于是线下单杀了lili。

是的有点繁琐的利用方式。

防御方法

1、当用户发送重要的请求时需要输入原始密码

2、设置随机Token

3、检验referer来源,请求时判断请求链接是否为当前管理员正在使用的页面(管理员在编辑文章,黑客发来恶意的修改密码链接,因为修改密码页面管理员并没有在操作,所以攻击失败)

(但是referer可以被篡改)

4、设置验证码

5、限制请求方式只能为POST

最好用的是token。

token是每次用户更改信息时,后台产生一个随机编号,仅当数据包与后台的编号一直时,才会允许更改,kobe这次更改信息就是这个编号,下次就更改数据包就会变化,所以我们用上次的数据就无法更改了。

类似这个

可以看到数据包多了一行编码。


http://www.kler.cn/a/155388.html

相关文章:

  • 基于Python的网上银行综合管理系统
  • AI大模型开发架构设计(18)——基于大模型构建企业知识库案例实战
  • 数字孪生在智慧能源项目中的关键作用,你了解多少?
  • C获取程序名称的方法
  • 前端开发中常用的包管理器(npm、yarn、pnpm、bower、parcel)
  • 第74期 | GPTSecurity周报
  • 从零开始:PHP实现阿里云直播的简单方法!
  • Java通过Redis进行延时队列,定时发布消息(根据用户选择时间进行发布)
  • python爬虫抓取网页图片教程
  • Spring事务管理介绍
  • yolo.txt格式与voc格式互转,超详细易上手
  • Centos图形化界面封装OpenStack Ubuntu镜像
  • Electron+Ts+Vue+Vite桌面应用系列:TypeScript常用时间处理工具
  • Python ctypes:揭秘高级Python与底层交互秘籍
  • JavaScript编程基础 – For循环
  • ChatGPT等大语言模型为什么没有智能
  • JavaWeb | 表单开发
  • 智能优化算法应用:基于原子搜索算法无线传感器网络(WSN)覆盖优化 - 附代码
  • 二叉树在线OJ
  • python-迭代器与生成器
  • 强化学习(一)——基本概念及DQN
  • matlab科学计算
  • 如何使用注解实现接口的幂等性校验
  • Linux下activemq的安装与安装成功确认
  • 面试题:千万量级数据中查询 10W 量级的数据有什么方案?
  • Java架构师技术为业务赋能