Pikachu上的CSRF以及NSSCTF上的[NISACTF 2022]bingdundun~、 [SWPUCTF 2022 新生赛]xff
目录
一、CSRF
CSRF(get) login
CSRF(post)
CSRF Token
二、CSRF的相关知识点
(1)什么是CSRF?
(2)工作原理
(3)CSRF漏洞形成的条件
2、用户要访问攻击者发的恶意url链接才行
(4)与XSS的区别
(5)CSRF的防御
三、NSSCTF上的题
在解这个题之前,需要先了解以下Phar伪协议
相关例题([NISACTF 2022]bingdundun~):
[SWPUCTF 2022 新生赛]xff
一、CSRF
CSRF(get) login
1.使用以受害者身份登录账号,登录账号在提示里面
2.我这里选择了vince的身份登录,发现可以修改个人信息
3. 以受害者身份点击修改个人信息的按钮,然后修改地址为china上交进行测试,发现修改成功,url也没有什么回显的信息
4. 对提交修改信息时候进行抓包,以黑客身份使用burp进行抓包,发现看到上面就是提交的get请求数据,从上面的url可见,修改用户信息的时候,是不带任何不可预测的认证信息的。那么,这里应该是可以被利用的。
5.把修改的get链接复制下来,http://ipakchu/vul/csrf/csrfget/csrf_get_edit.php?sex=boy&phonenum=18626545453&add=shanxi&email=vince%40pikachu.com&submit=submit,然后将包释放掉,发现仍然修改成功
6.以黑客身份生成一个恶意网页给用户来点击,达到修改信息的目的
方法一:抓包,浏览器访问该poc
!注意:这里必须让受害者使用同一个浏览器,并且登录状态还在生效才有用
方法二:直接手写网页代码
以受害者身份点击了恶意网站的链接,很明显的发现已经修改了信息,这里修改了地址为shanxi,第一关解决
CSRF(post)
1.第一步仍然为登录账号
2.点击提交修改信息的按钮,进行抓包,发现这一关是post提交了,无法学上一关那样直接使用URL来改参数。但抓包可知,这个表单的数据数量以及对应的字段名name,这就可以构造一个恶意表单网页来给用户点击。在抓包中的CSRF中可以改你想要修改的信息,然后进行复制
3.利用复制的html代码搭建一个恶意网站,让受害者去点击
点击之后,攻击完成,修改信息也完成,这里修改了性别和住址,第二关结束
CSRF Token
1.像上面两关一样,进行抓包,发现token
2.将包发送到Intruder,设置攻击方式以及变量,这里设置了token和住址为变量
3.像暴力破解的token那样设置,最后就行爆破,这里修改的是地址
观察到地址被修改,达到修改信息的目的
资料参考:pikache靶场通关——CSRF攻击_pikachu靶场-csrf-CSDN博客
二、CSRF的相关知识点
(1)什么是CSRF?
CSRF,跨站域请求伪造,通常攻击者会伪造一个场景(例如一条链接),来诱使用户点击,用户一旦点击,黑客的攻击目的也就达到了,他可以盗用你的身份,以你的名义发送恶意请求。CSRF攻击的关键就是利用受害者的cookie向服务器发送伪造请求。
CSRF利用受害者尚未失效的身份认证信息(cookie、会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下以受害者的身份向(身份认证信息所对应的)服务器发送请求,从而完成非法操作(如转账、改密码等)。CSRF与XSS最大的区别就在于,CSRF并没有盗取cookie而是直接利用。
(2)工作原理
(3)CSRF漏洞形成的条件
通过上面的讲解我们知道CSRF形成的必要条件是
1、用户要在登录状态(即浏览器保存了该用户的cookie)
2、用户要访问攻击者发的恶意url链接才行
(4)与XSS的区别
CSRF(Cross-site request forgery)和XSS(Cross-site scripting)都是Web应用程序中常见的安全漏洞,但它们攻击方式、作用目标和防御手段不同。
攻击方式:XSS主要是通过在受害者浏览器上运行的恶意脚本来实现攻击,而CSRF通常利用验证机制的缺陷,使得攻击者通过操纵受害者的账户来执行非法操作。
作用目标:XSS主要影响用户端浏览器,导致被攻击网站或应用程序上存在的漏洞,可以被恶意脚本攻击并获取用户数据。而CSRF则主要影响服务端,攻击者可以伪造请求和数据来欺骗服务器程序执行不安全或有害的操作(如购买产品、更改密码等)。
防御手段:XSS漏洞可以采用输入过滤、转义输出等手段进行防御;而避免CSRF漏洞则需要采用Token、Referer、SameSite Cookie属性等措施。
综上所述,虽然两种漏洞都危害严重,但是他们的侧重点不同,因此相应的防御也有所不同。
(5)CSRF的防御
- 验证Referer字段
- 添加Token验证
- 二次验证:在关键操作之前,再输入密码或者验证码。
- HttpOnly:某些情况下禁止JS 脚本访问Cookie 信息。
- SameSite:Cookie 属性,浏览器自带的安全机制。
资料参考:https://zhuanlan.zhihu.com/p/398601816
https://www.cnblogs.com/yblackd/p/14533436.html
三、NSSCTF上的题
在解这个题之前,需要先了解以下Phar伪协议
用于将多个 PHP 文件、类、库、资源(如图像、样式表)等打包成一个单独的文件。这个归档文件可以像其他 PHP 文件一样被包含(include)或执行。PHAR 归档提供了一种方便的方式来分发和安装 PHP 应用程序和库,尤其是当它们包含许多文件和目录时
1.phar 伪协议无论读取什么文件,都会将其视为压缩包进行解压缩,然后作为 php 代码执行,在文件上传类漏洞中经常被用到。
2.Phar伪协议是PHP的一个特性,它允许直接从Phar归档中读取文件,而不需要将Phar文件解压。这样可以直接从Phar文件运行PHP脚本,而无需在服务器上物理地提取文件。
例如,如果你有一个名为example.phar
的Phar归档文件,你可以通过以下URL运行其中的PHP脚本:
phar://example.phar/somefile.php
在这个URL中,phar://
是协议,example.phar
是Phar文件的名称,somefile.php
是Phar文件中的一个PHP文件。
相关例题([NISACTF 2022]bingdundun~):
1.进入页面,观察到url有参数bingdundun,根据提示,随便上传一个jpg文件,发现url变成了上传php文件
那么猜测前面在输入 ?bingdundun=upload 时会自动添加 .php 后缀名,因为两种 URL 指向同一个页面,说明 ?bingdundun= 包含的就是 upload.php 文件。fuzz 一下,发现确实只能上传图片和压缩包。那么猜测是用 phar 伪协议进行文件包含
注意:phar 伪协议无论读取什么文件,都会将其视为压缩包进行解压缩,然后作为 php 代码执行,在文件上传类漏洞中经常被用到。
2.建立一个有一句话木马的php文件,将它压缩成一个zip
3. 上传这个压缩包
4. 构造payload,利用phar伪协议,因为此页面会自动加上.php后缀,所以这里没写
?bingdundun=phar://102bf3460d121e159ba5d237f8dadd32.zip/shell
5.使用蚁剑链接,连接成功在根目录下找到flag
[SWPUCTF 2022 新生赛]xff
1.进入页面,发现必须从小红的电脑上访问
2.根据题目的提示,抓包进行修改XFF
3.修改XFF,发现回显,必须从主页跳转,于是添加Referer,得到flag
XFF:告诉服务器当前请求者的最终IP。在一些情况下,攻击者可能会尝试伪造X-Forwarded-For字段来隐藏其真实IP地址,因此在使用XFF时需要谨慎验证其真实性。
Referer:它的作用是指示一个请求是从哪里链接过来,那么当一个请求并不是由链接触发产生的,那么自然也就不需要指定这个请求的链接来源。
相关文章:
Pikachu上的CSRF以及NSSCTF上的[NISACTF 2022]bingdundun~、 [SWPUCTF 2022 新生赛]xff
目录 一、CSRF CSRF(get) login CSRF(post) CSRF Token 二、CSRF的相关知识点 (1)什么是CSRF? (2)工作原理 (3)CSRF漏洞形成的条件 1、用户要在登录状态(即浏览器保存了该…...
大数据分析-二手车用户数据可视化分析
项目背景 在当今的大数据时代,数据可视化扮演着至关重要的角色。随着信息的爆炸式增长,我们面临着前所未有的数据挑战。这些数据可能来自社交媒体、商业交易、科学研究、医疗记录等各个领域,它们庞大而复杂,难以通过传统的数据处…...
AI训练Checkpoint对存储的影响
检查点(Checkpoints)是机器学习和深度学习训练过程中的一个重要机制,旨在定期保存训练状态,以便在训练过程中遇到失败或中断时能够从中断处恢复训练,而无需从头开始。 随着模型参数量的剧增,Checkpoint文件…...
Python笔记 - 正则表达式
正则表达式(Regular Expression,简称regex)是一种强大的工具,用于匹配字符串模式。在Python中,正则表达式通过re模块提供。本文将带你深入了解Python中的正则表达式,从基础概念到高级用法。 1. 什么是正则…...
安卓网络通信(多线程、HTTP访问、图片加载、即时通信)
本章介绍App开发常用的以下网络通信技术,主要包括:如何以官方推荐的方式使用多线程技术,如何通过okhttp实现常见的HTTP接口访问操作,如何使用Dlide框架加载网络图片,如何分别运用SocketIO和WebSocket实现及时通信功能等…...
Virtual Memory Primitives for User Program翻译
Virtual Memory Primitives for User Program 安德鲁阿普尔(Andrew Appel)和李凯(Kai Li) 普林斯顿大学计算机科学系 摘要 传统上,内存管理单元(MMUS)被操作系统用于实现磁盘分页的虚拟内存…...
网络基础2
目录 应用层HTTP协议认识URLurlencode和urldecode HTTP协议格式http请求格式http响应格式 HTTP的方法GET与POST的区别 HTTP的状态码HTTP常见HeaderCookie与Session 传输层在谈端口号端口号范围划分认识知名端口号netstatpidof UDP协议UDP协议端格式UDP的特点面向数据报UDP的缓冲…...
C# 下载文件2
从服务下载压缩包 过程 发起请求 HttpWebRequest 断点续传 HttpWebRequest.AddRange() 获取服务资源的响应 HttpWebResponse 设置下载进度条 解压压缩包 ZipFile using System; using System.IO; using System.IO.Compression; using System.Net;namespace Test01 {clas…...
Unity | Tilemap系统
目录 一、准备工作 1.插件导入 2.资源导入 二、相关组件介绍 1.Grid组件 2.Tilemap组件 3.Tile 4.Tile Palette 5.Brushes 三、动态创建地图 四、其他功能 1.移动网格上物体 2.拖拽缩放地图 Unity Tilemap系统为2D游戏开发提供了一个直观且功能强大的平台ÿ…...
CSS选择符和可继承属性
属性选择符: 示例:a[target"_blank"] { text-decoration: none; }(选择所有target"_blank"的<a>元素) /* 选择所有具有class属性的h1元素 */ h1[class] { color: silver; } /* 选择所有具有hre…...
C++升级软件时删除老版本软件的桌面快捷方式(附源码)
删除桌面快捷方式其实是删除桌面上的快捷方式文件,那我们如何去删除桌面快捷方式文件呢?软件可能已经发布过多个版本,其中的一些版本的快捷方式文件名称可能做了多次改动,程序中不可能记录每个版本的快捷方式名称,没法直接去删除快捷方式文件。本文就给出一种有效的处理办…...
github国内加速访问有效方法
这里只介绍实测最有效的一种方法,修改主机的Hosts文件,如果访问github网站慢或者根本无法访问的时候可以采用下面方法进行解决。 1、搜索一个IP查询网站 首先百度搜索选择一个IP查询的网站,这里我用下面这个网站(如果该网站失效…...
如何处理JavaScript中的浮点数精度问题
在开发过程中,特别是涉及到金额计算或需要精确比较的场景,浮点数精度问题是一个常见而重要的挑战。本文将介绍在JavaScript中如何识别、理解和解决这些问题,并提供一些实用的技巧和建议。 1. 问题背景 JavaScript中的浮点数采用IEEE 754标准…...
ASPICE标准与ASPICE认证:提升汽车软件开发质量与效率的关键途径
在当今日新月异的科技时代,软件产品的质量和可靠性成为了企业赢得市场的关键。而ASPICE(Automotive SPICE)标准,作为汽车行业中软件过程评估的国际通用标准,正逐渐引起行业的广泛关注。那么,ASPICE标准究竟…...
easyexcel的简单使用(execl模板导出)
模板支持功能点 支持列表支持自定义头名称支持自定义fileName支持汇总 模板示例 操作 pom引入 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>${easyexcel.version}</version></dep…...
代码随想录算法训练营第39天|● 62.不同路径 ●63. 不同路径 II
不同路径 62. 不同路径 - 力扣(LeetCode) 1.确定dp数组(dp table)以及下标的含义 dp[i][j] :表示从(0 ,0)出发,到(i, j) 有dp[i][j]条不同的路径。 2.确定递推公式 …...
【DevOps】 什么是容器 - 一种全新的软件部署方式
目录 引言 一、什么是容器 二、容器的工作原理 三、容器的主要特性 四、容器技术带来的变革 五、容器技术的主要应用场景 六、容器技术的主要挑战 七、容器技术的发展趋势 引言 在过去的几十年里,软件行业经历了飞速的发展。从最初的大型机时代,到后来的个人电脑时代,…...
使用pnpm创建vue3项目
https://pnpm.io/zh/ 全局安装: npm install -g pnpm 检查版本: pnpm -v 创建vue3项目: pnpm create vuelatest 项目装包: pnpm install 运行项目: pnpm dev 命令行: https://pnpm.io/zh/pnpm-cli pnpm …...
【软件测试】43个功能测试点总结
🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试…...
Python — — GPU编程
Python — — GPU编程 要想将Python程序运行在GPU上,我们可以使用numba库或者使用cupy库来实现GPU编程。 壹、numba Numba 是一个开源的 JIT (Just-In-Time) 编译器,它可以将 Python 代码转换成机器代码以提高性能。Numba 特别适用于需要高性能计算的…...
C#中的枚举类-自定义属性
在实际开发过程中,我们常常会用到枚举类,使用枚举的时候往往有着各种使用条件,如何给枚举加入使用条件呢? 答案就是我们的——自定义属性 废话不多说,上代码 枚举类 首先我们要有一个枚举类 public enum XXXX枚举…...
多态深度剖析
前言 继承是多态的基础, 如果对于继承的知识还不够了解, 可以去阅读上一篇文章 继承深度剖析 基本概念与定义 概念: 通俗来说,就是多种形态。具体点就是去完成某个行为, 当不同的对象去完成时会产生出不同的状…...
OSPF被动接口配置(华为)
#交换设备 OSPF被动接口配置 一、基本概念 OSPF被动接口,也称为抑制接口,即将路由器某一接口配置为被动接口后,该接口不会再接受和发送OSPF报文 二、使用场景 在路由器与终端相近或者直接相连的一侧配置被动接口 因为OSPF会定期发送报文…...
Android --- 异步操作
同步和异步的差异 同步:在发生某件事后什么也不做,直到该事件完成后,再继续进行 异步:在某件事发生后,可以在等待他完成的时候去处理其他事件,等到该事件发生完成后,再回过头来处理它。 异步…...
(55)MOS管专题--->(10)MOS管的封装
(10)MOS管的封装 1 目录 (a)IC简介 (b)数字IC设计流程 (c)Verilog简介 (d)MOS管的封装 (e)结束 1 IC简介 (a)在IC设计中,设计师使用电路设计工具(如EDA软件)来设计和模拟各种电路,例如逻辑电路、模拟电路、数字信号处理电路等。然后,根据设计电路的…...
超高清图像生成新SOTA!清华唐杰教授团队提出Inf-DiT:生成4096图像比UNet节省5倍内存。
清华大学唐杰教授团队最近在生成超高清图像方面的新工作:Inf-DiT,通过提出一种单向块注意力机制,能够在推理过程中自适应调整内存开销并处理全局依赖关系。基于此模块,该模型采用了 DiT 结构进行上采样,并开发了一种能…...
网络安全 - DNS劫持原理 + 实验
DNS 劫持 什么是 DNS 为什么需要 DNS D N S \color{cyan}{DNS} DNS(Domain Name System)即域名系统。我们常说的 DNS 是域名解析协议。 DNS 协议提供域名到 IP 地址之间的解析服务。计算机既可以被赋予 IP 地址,也可以被赋予主机名和域名。用…...
MyBatis的运行原理
目录 1、目的:梳理一下MyBatis运行时的几个对象,我们需要搞清楚他们的作用,进而需要理解mybatis的整个工作流程和执行原理。 2、简要概括各个类 2.1 Resources 作用:编写资源加载类,使用类加载器加载 配置文件(myb…...
算法题解记录29+++全排列(百日筑基)
一、题目描述 题目难度:中等 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 示…...
苹果AI功能,AI训练数据缺乏,SD3推出,MJ6推出新特性
更多信息: https://agifun.love 智源社区 2024智源大会议程公开丨大模型前沿探索 2024年6月14日-15日,第6届北京智源大会将以线下与线上结合的形式召开,线下会场设在中关村国家自主创新示范区会议中心。2024智源大会再次以全球视野&#x…...
西安做网站公司那家好/目前最新推广平台
制作一张图片 然后使用选择器 input:cheacked span 被选中的input 相邻的span 使用css更改其背景图片。background-position : 坐标1 坐标2。...
c# 网站开发实例教程/百度电话客服
“五险”讲的是五种保险,包括养老保险、医疗保险、失业保险、工伤保险和生育保险; “一金”指的是住房公积金。 其中养老保险、医疗保险和失业保险,这三种险是由企业和个人共同缴纳的保费,工伤保险和生育保险完全是由企业承担的。个人不需要缴纳。这里…...
网站建设需要考虑因素/百度竞价排名是以什么形式来计费的广告?
大家好,我是正在学习蒸鱼的煎鱼。前几天 Go 语言社区被 《Go1.17 快报:将移除 GOPATH》,以及最近 Go1.16 的 Go modules 变动引爆社区浪潮。经过三天冷静期,现在整体热度基本降下来了。煎鱼打算从另外一个角度来聊下,看…...
学校网站建设的成果/seo关键词优化外包
【题目描述】: 幼儿园里有N个小朋友,1xhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果。但是小朋友们也有嫉妒心,总是会提出些要求,比如小明不希望小红分到的糖果比他的多,于是在分配糖果的时候l…...
网站如何做支付宝接口/网站搭建软件
linux--文件大小1 简介2 命令介绍2.1 查看文件系统各分区2.2 查看目标文件大小2.2 查看目标路径下文件的二级文件大小3 示例3.1 查看U盘挂载节点3.2 查看当前路径二级文件大小参考1 简介 linux下查看文件大小常用的两个命令便是 df 和 du。 du 统计文件大小相加。 df统计数据块…...
景区网站建设的重要性/平台营销策略都有哪些
转:http://www.51testing.com/html/14/175414-207590.html http://blog.csdn.net/hfhwfw/article/details/37838615 HttpUnit是一个集成测试工具,主要关注Web应用的测试,提供的帮助类让测试者可以通过Java类和服务器进行交互,并…...