OWASP之CSRF跨站请求伪造

news2025/1/16 0:45:50

CSRF(Cross-site request forgery)跨站请求伪造

文章目录

  • 一、CSRF定义
  • 二、CSRF危害
  • 三、CSRF漏洞构成
    • 1.漏洞风险存在
    • 2.用户登录受信任网站A,并在本地生成Cookie
    • 3.攻击者伪装数据操作请求的恶意链接或者页面
    • 4.诱使未登出用户主动访问或登录恶意链接,触发非法操作
  • 四、CSRF的类型
    • 1.Get类型
    • 2.Post类型
    • 3.Get+token
  • 五、CSRF实操
    • 1.Pikachu靶场CSRF
      • a.CSRF(get) login
      • b.CSRF(post) login
      • c.CSRF Token login
    • 2.DVWA靶场CSRF
      • a.LOW
      • b.Mid
      • c.High
  • 六、蓝莲花靶场搭建与使用
    • 1.安装
      • a.将\BlueLotus_XSSReceiver-master\*.*拷贝到pikachu www目录下
      • b.浏览器打开
      • c.点安装
      • d.登录即可
      • e.进入主页面添加数据
    • 2.使用
      • a.打开DVWA LOW级别 反射型xss界面
      • b.蓝莲花创建”我的js”模块
      • c.点击生成payload
      • d.执行payload
      • e.蓝莲花打开接收面板
  • 七、XSS在线平台
    • 1.打开页面
    • 2.新建项目
    • 3.选择基础默认模块
    • 4.复制上面任意一条payload到DVWA里看效果

一、CSRF定义

CSRF是通过伪装用户的请求来利用网站。利用网站漏洞从用户那里恶意盗取信息

二、CSRF危害

以受害者名义发送邮件,发消息,盗取受害者的账号,甚至购买商品,虚拟货币转账,修改受害者的网络配置(比如修改路由器DNS、重置路由器密码)
造成的问题包括:个人隐私泄露、机密资料泄露、用户甚至企业的财产安全;
盗用受害者身份,受害者能做什么,攻击者就能以受害者的身份做什么。

三、CSRF漏洞构成

1.漏洞风险存在

目标站点或系统存在一个可以进行数据修改或者新增操作,且此操作被提交到后台的过程中,未提供任何身份识别或校验的参数。后台只要收到请求,就立即下发数据修改或新增的操作;存在以上情况说明存在漏洞风险。
出现比较多的场景有:个人资料修改、用户密码的修改、支付、购物地址的修改或后台管理账户的新增、数据库备份等等操作过程中。
CSRF一般与XSS结合使用

2.用户登录受信任网站A,并在本地生成Cookie

3.攻击者伪装数据操作请求的恶意链接或者页面

恶意攻击者只要将伪装好的“数据修改或新增”的请求发送给被攻击者,或者通过社工的方式诱使被攻击者在其cookie还生效的情况下点击了此请求链接,即可触发CSRF漏洞,成功修改或新增当前用户的数据信息

4.诱使未登出用户主动访问或登录恶意链接,触发非法操作

当前用户在不知情的情况下,访问了黑客恶意构造的页面或在链接,即在非本意的情况下完成黑客想完成的“非法操作”,实现了对当前用户个人信息的恶意操作。

四、CSRF的类型

get类型和post类型

1.Get类型

Get指的是向某个地方获取一些数据,这个获取的过程可以理解为一个简单的查询,专业名词叫做“幂等”。幂等也就是能够随意多次执行。
get类型的CSRF是CSRF中最常见,危害最大,但也是最简单的一种类型了,只要一个http请求就可以了,这种类型的CSRF一般是由于程序员安全意识不强造成的。GET类型的CSRF利用非常简单,只需要一个HTTP请求,所以,一般会这样利用:
抓包获取请求修改html代码
在这里插入图片描述

复制url,写个简单的html文件

0元充值 ![在这里插入图片描述](https://img-blog.csdnimg.cn/890b6761d4cd4d04be5f2ffcfa42e4b5.png)

里面的请求数据可以随意改,然后扔给未登出用户点击即完成攻击
在这里插入图片描述

2.Post类型

post是希望服务器做某项操作,也就是不幂等。因为是设计成有影响的操作,所以它不能被缓存。post请求一般都是表单提交,可以在body里面携带数据。
$_REQUEST既可以获取GET请求的数据,也可以获取POST请求的数据;
一般会这样利用:
Bp抓包获取html请求代码,里面的请求数据可以随意改,把我们刚刚复制出来的referer粘贴在这个里面,然后使用Engagement tools-Generate CSRF POC,然后扔给未登出用户点击即完成攻击

在这里插入图片描述
在这里插入图片描述

3.Get+token

在这里插入图片描述

应对方法1:跟暴力破解绕过token的方式一样
新密码、确认新密码要设置一样的字典,Grep - Extract 通过正则提取返回信息中的内容
应对方法2:bp插件 下载完成后填一下host和name
在这里插入图片描述

五、CSRF实操

1.Pikachu靶场CSRF

a.CSRF(get) login

在这里插入图片描述

首先BP抓包获取请求代码
在这里插入图片描述

复制url,写个简单的csrf.html文件

0元充值 修改请求数据后给前端用户点击 ![在这里插入图片描述](https://img-blog.csdnimg.cn/fa49bc7f81c642248cb2c007f7923e11.png)

点击修改个人信息
用户编辑修改个人信息
在这里插入图片描述

BP抓包制作模仿链接
在这里插入图片描述

将数据提取出来
复制url,写个简单的csrf2.html文件,随意修改请求数据后给前端用户点击

csrf ![在这里插入图片描述](https://img-blog.csdnimg.cn/bf82f240bef64358aac4a033fb8da30d.png)

b.CSRF(post) login

在这里插入图片描述

先登录
在这里插入图片描述

点击修改个人信息
在这里插入图片描述

然后抓包制作模拟链接
在这里插入图片描述在这里插入图片描述

随意修改上面数据后保存成csrf-post.html给前端用户点击
在这里插入图片描述在这里插入图片描述

也是一样被篡改数据了

c.CSRF Token login

先登录
在这里插入图片描述在这里插入图片描述

点修改个人信息
在这里插入图片描述
抓包制作模拟链接,发现多了个token
在这里插入图片描述

但是发现要修改的参数太多,不是只是修改密码,不能用爆破的方法,因此这里使用插件CSRF Token Tracker实现
Extender–BApp Store–搜索CSRF Token Tracker–install
在这里插入图片描述

装完后主菜单会多出一个选项CSRF Token Tracker
CSRF Token Tracker–host填写127.0.0.1,Name填poc名称,勾选使用
在这里插入图片描述

然后抓包点send to repeater重放
在这里插入图片描述

可以修改下数据再点send
在这里插入图片描述

点Follow redirection后发现修改成功
在这里插入图片描述

重新登录验证下
在这里插入图片描述

说明也确实被修改成功了
但是发现这里有个问题就是只能重放一次,使用过后Follow redirection就不再出现了,需要重新再来,而且如果修改编码不对也不会出现Follow redirection

2.DVWA靶场CSRF

a.LOW

在这里插入图片描述

不知道是get还是post,先bp抓包再说
在这里插入图片描述

显然是get类型的
那就构造链接吧
复制url,写个简单的csrf3.html文件

0元充值 稍微改下它的密码,然后给前端点击 ![在这里插入图片描述](https://img-blog.csdnimg.cn/c060613b8ff24a09bab7d649bad7265e.png)

点击submit
在这里插入图片描述

然后我们登出使用该密码登录
发现确实修改成功了

b.Mid

登录抓包
在这里插入图片描述

替换链接打开
在这里插入图片描述

登出用新密码登录,也成功了,中级的怎么一样的

c.High

在这里插入图片描述

不出所料,高级的多了token
这次用爆破试下
在这里插入图片描述

使用鱼叉模式,用修改密码和token做变量
grep-extract加入找到的token

在这里插入图片描述

第二个字典类型选用Recursive gep,并将token黏贴在此处
在这里插入图片描述

使用单线程和一直重定向
在这里插入图片描述

开始爆破
在这里插入图片描述

其他情况
在这里插入图片描述

注意。爆破字典里要有我们修改的密码,如这里的password,否则会全部失败的

六、蓝莲花靶场搭建与使用

1.安装

a.将\BlueLotus_XSSReceiver-master*.*拷贝到pikachu www目录下

在这里插入图片描述

b.浏览器打开

http://127.0.0.1/BlueLotus_XSSReceiver-master/
在这里插入图片描述

c.点安装

可以改下密码,其他默认提交
在这里插入图片描述

d.登录即可

在这里插入图片描述在这里插入图片描述

e.进入主页面添加数据

在这里插入图片描述

2.使用

a.打开DVWA LOW级别 反射型xss界面

在这里插入图片描述在这里插入图片描述

b.蓝莲花创建”我的js”模块

在这里插入图片描述

使用默认模块,插入模版,website使用dvwa的当前测试xss界面地址,自定义文件名,最后点下面的新增

c.点击生成payload

在这里插入图片描述

复制生成的payload

d.执行payload

将复制的payload,放到dvwa的xss模块执行
在这里插入图片描述

e.蓝莲花打开接收面板

(需要重新拼接地址,先访问一下
http://127.0.0.1/BlueLotus_XSSReceiver-master/,
再访问http://127.0.0.1/BlueLotus_XSSReceiver-master/admin.php)
在这里插入图片描述

七、XSS在线平台

1.打开页面

https://xssaq.com/?callback=project&act=view&id=12637,登录账号和密码:poilkjmnb,QWE123
在这里插入图片描述

2.新建项目

在这里插入图片描述

点下一步

3.选择基础默认模块

在这里插入图片描述

点下一步
在这里插入图片描述

4.复制上面任意一条payload到DVWA里看效果

在这里插入图片描述

但是好奇怪的是我这里并没收到cookie

漏洞提交平台
漏洞盒子:https://www.vulbox.com/
补天:https://www.butian.net/
CNVD:https://www.cnvd.org.cn/
教育SRC:https://src.sjtu.edu.cn/

信息收集平台
https://fofa.info/
https://hunter.qianxin.com/
https://www.zoomeye.org/
https://www.shodan.io/
https://quake.360.net/quake/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/666918.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

新式茶饮头部品牌「古茗茶饮」联手企企通,打造采购数字化新思路

导读 企企通在采购与供应链领域积累了丰富的项目开发经验,是国内一站式采购数字化管理平台领军企业之一,其售前、商务、项目人员都是这个赛道最专业的。该平台的建设可以自动化处理采购链路多个节点重复性任务,帮助我们提高采购效率&#xf…

向日葵× 实在RPA擦出AI的火花,贝锐与实在智能官宣战略合作

6月19日,实在智能(Intelligence Indeed)与贝锐(Oray)正式宣布达成战略合作。实在智能作为国内AI准独角兽企业和超级自动化平台提供商,与国内领先的SaaS远程连接解决方案提供商贝锐的实力“牵手”&#xff0…

基于Python的电影票房爬取与可视化系统的设计与实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

2023年blender渲染显卡推荐

Blender是完全免费的、开源的,而且非常灵活。为了让 Blender 运行良好,有必要找到最好的 GPU。对于希望优化其 3D 建模和渲染体验的 Blender 专业人士和爱好者来说,找到最好的 GPU 是当务之急。GPU 不仅在渲染方面起着至关重要的作用&#xf…

电流驱动和电压驱动有什么区别(高精度电流源)

电流驱动和电压驱动是电子电路设计中常用的两种驱动方式。它们有着各自不同的优缺点,选择不同的驱动方式可以在不同的应用场景中获得更好的效果。 电压驱动(Voltage Drive)是通过控制电路的输出电压来实现对电路的控制。在电路中,…

软考高级系统架构设计师(四) 计算机网络1

目录 概要 TCP/IP TCP可靠传输的实现,依赖如下机制 ​DNS DHCP 网络规划与设计 逻辑网络设计 物理网络设计 层次化网络设计 网络冗余设计 ​网络存储技术 概要 TCP/IP POP3:邮件收取 SMTP:简单邮件传输协议 DNS:域名与IP地址之间是一对应的 DHCP:主要…

排序算法第一辑——插入排序

思维导图: 一,插入排序 插入排序,一种简单排序中的王者。这种排序算法的过程可以想象成是打牌时摸牌按照顺序插入扑克牌的过程。想想你是如何打牌的?在你拿下一个牌插入时你是不是将手里已经有的牌变得有序了才抽下下一个牌来进行…

电影APP项目(Android+Java+MySQL)

目录: 一、系统架构:二、效果图:1.主页:2.榜单页:3.预告片页:4.动态评论页:5.登录页: 三、数据库设计:四、详细设计:1.主页:2.榜单页:…

【Java-SpringBoot+Vue+MySql】Day2-第一个SpringBoot项目应用

目录 一、初步了解SpringBoot 二、创建第一个SpringBoot项目 三、配置MyBatis数据源 四、创建启动类 五、MVC设计模式 六、SpringBoot整合应用 (1)创建一个实体类 (2)创建DAO接口 (3)创建mapper&#…

AutoSAR系列讲解 - AutoSAR标准文档概览

目录 一、文档下载 二、文档结构 三、文档内容 四、各部分介绍 1、Introduction and functional o 目录 一、文档下载 二、文档结构 三、文档内容 四、各部分介绍 1、Introduction and functional overview 2、Acronyms and abbreviations 3、Related documentati…

MySQL面试题--sql优化的经验

表的设计优化(参考阿里开发手册《嵩山版》) 比如设置合适的数值(tinyint int bigint),要根据实际情况选择 比如设置合适的字符串类型(char和varchar)char定长效率高,varchar可变…

关于智慧消防建设的探究 安科瑞 许敏

【摘要】随着城市化发展步伐的不断加快,智慧城市的建设已经成为城市发展的重要目标,而智慧消防则是其重要组成部分,不容忽视。基于大数据时代背景下,实现智慧消防建设的时候,更加需要以信息化为导向,这样才…

从零开始 Spring Boot 45:FactoryBean

从零开始 Spring Boot 45:FactoryBean 图源:简书 (jianshu.com) 在前文中我介绍过 FactoryBean,本篇文章会更深入的介绍相关内容。 依赖注入 从一个简单示例开始,我们看使用FactoryBean定义的 Spring Bean 如何注入。 假设我们…

mysql数据库备份和恢复和日志管理

数据库备份和恢复和日志管理 一:数据库备份备份和恢复1.备份分类从物理与逻辑的角度,备份可分为从数据库的备份策略角度,备份可分为 2.常见的备份方法3.MySQL完全备份和恢复分类一:物理冷备份与恢复关闭MySQL数据库使用tar命令直接…

DJ5-1 链路层概述

目录 一、链路层的术语 二、链路层的类比 三、链路层提供的服务 四、链路层实现的位置 1、网络适配器 2、网络适配器工作过程 一、链路层的术语 ① 节点 (nodes):主机和路由器 ② 链路 (links):沿着通信路径连接相邻节点的通信信道 有线链路 (w…

locust学习教程(2)- 性能测试虚拟环境配置

前言 写这个是因为,好多专职自动化测试都不知道怎么配置虚拟,可想而知萌新们整个人都是懵的 1、安装pthon(略) 2、安装pycharm(略) 3、配置性能测试的虚拟环境 桌面新建目录 demolocust pycharm中 open …

Grdle版本的不同导致的一些差异

gradle版本是不断迭代升级的,升级后对有些配置是有影响的,比如对kotlin配置、上传maven的方式,特此记录一下 对kotlin配置的影响 我们主项目的gradle版本是6.3,对项目进行koltin配置的语法了,官方文档教程是一样的 …

计算机图形学-坐标系(坐标总汇)

建议买本书《计算机图形学》第四版 1 坐标系 1.1 在我们谈论坐标变换之前,我们必须对我们的坐标系做一个正式的定义。DirectX 使用的默认坐标系是左手坐标系。OpenGL 使用的默认坐标系是右手坐标系。 我们可以通过使用手对坐标系进行一个简单的判断。 左手坐标…

LiangGaRy-学习笔记-Day24

1、web服务介绍 1.1、Linux常见的web服务 httpd nginx tomcat 1.2、LAMP架构 L:CentOS CentOS7RHEL7等等 A:Apache apache:网页服务器 httpd服务 M:MySQL MySQL:关系型数据库 AB公司–>08年被SUN公司收购…

基于.Net6使用YoloV8的分割模型

前言 在目标检测一文中,我们学习了如何处理Onnx模型,并的到目标检测结果,在此基础上,本文实现基于.Net平台的实例分割任务。 执行YoloV8的分割任务后可以得到分割.pt模型。由于Python基本不用于工业软件的部署,最终还…