29 WEB漏洞-CSRF及SSRF漏洞案例讲解

news2024/11/27 17:52:17

目录

    • CSRF漏洞解释,原理等
    • CSRF漏洞检测,案例,防御等
    • 防御方案
      • 2、设置随机Token
      • 3、检验referer来源
    • SSRF漏洞会比csrf漏洞重要一些
    • SSRF_PHP,JAVA漏洞代码协议运用
    • 演示案例:
      • SSRF_漏洞代码结合某漏洞利用测试
    • 如何查找ssrf漏洞

SSRF漏洞文章分享:https://www.t00ls.com/articles-41070.html

CSRF和SSRF在实战情况下或者搞权限提升的话,一般这两种漏洞都不是很重要的,即使拿到这两个漏洞和权限提升也会有距离,如果提交到SRC平台,有时候也是能够通过的
在这里插入图片描述

CSRF漏洞解释,原理等

csrf和xss的区别在于借助一个外部网站来进行攻击、来触发代码,而不是在地址上面来触发代码

CSRF漏洞检测,案例,防御等

一般是点击能够修改信息和更新信息功能的时候,在去测试
抓取数据包,右键bp的插件csrf poc,会弹出一个界面
在这里插入图片描述
根据我们的需要,修改数据包的信息,点击regenerate会产生csrf html的代码,在点击test in browser,把url链接粘贴到开了BP代理的浏览器中去访问
在这里插入图片描述
点一下submit,在浏览器网络数据包中,我们已经看到这个请求了,我们看一下更新信息界面当中这个信息是否已经修改了,数据包是否构造成功,如果信息界面信息没有修改,说明没有csrf攻击

CSRF漏洞验证文章分享:https://blog.csdn.net/qq_41123867/article/details/104401134

一般csrf是用来修改信息,添加新的东西,例如添加后台管理员、添加用户、修改用户的密码,比如说网站,我们在访问的时候,就是个页面,这个页面没有什么信息,干不了什么事情的话,像这种地方你就没有必要去测试有没有csrf漏洞,因为即使有和没有关系不大,因为我们一般用csrf是用来修改、添加、更新这些功能,所以大家在选取有没有csrf攻击的时候,应该注意在网站上的一个功能,这个操作是一个添加还是更新、删除,如果说你打开一个网站啥也没有,那这里就没有测试的必要了,因为有csrf漏洞,你不能修改、添加的话,也没有什么作用

抓取修改数据的数据包,修改数据包要修改的数据,生成poc html,如果验证修改成功,说明后端代码对要修改的数据,没有进行校验,因为这个时候是通过第三方的服务器发送过来的数据,应该是要不信任的,不能任凭它修改

防御方案

1、当用户发送重要的请求时需要输入原始密码
2、设置随机Token
3、检验referer来源,请求时判断请求链接是否为当前管理员正在使用的页面(管理员在编辑文章,黑客发来恶意的修改密码链接,因为修改密码页面管理员并没有在操作,所以攻击失败)
4、设置验证码
5、限制请求方式只能为POST

2、设置随机Token

随机Token是数据包的唯一值,点击网站,会修改数据包的唯一值,如果说数据包前面是有一个编号的话,他是以编号为准,你之前修改的时候,编号为1,我们把数据包放到网站上去,数据包为2,他就会对比,你刚才是不是点了一个修改的数据包,他就可以通过编号来确定,当他发现不是他刚才点的数据包的话,他就直接不给与执行,这个时候就能防止数据包请求的结果,所以这个token相当于给每个数据包上了一个编号,用来判定数据包是不是之前原始的,还是说别人恶意构造的

如果大家在测试的时候,发现数据包里面有token,那就表示对方是有检查数据包唯一性的,那么csrf一般就不会有这个漏洞的,所以大家可以通过数据包的参数和token值,来简单的判断是否有这种漏洞

3、检验referer来源

同源策略:符合在当前网站自己操作自己,而不是通过其它地方来操作我,这种就符合同源
但是这种可以通过我们抓包,二次修改来实现绕过,这种检测来源是不安全的,他可以通过抓包修改来源,来进行攻击

检验referer来源是种防御方案,但是这种方案是不安全的,而那个token没办法,因为token是随机生成的,而且这个位数特别多,你想做暴力破解也是不现实的,这么多位数,得有多少组合,如果存在token值爆破,就不正常了

由于csrf在实战情况下不是很常见,再者这个漏洞大部分网站都是有防护的,他这个漏洞一般会产生在小中型网站,小中型网站对于我们来讲的话,本来网站自己就不强调安全,你有这个漏洞意义就不是很大,并竟我们以后挖漏洞也好,提交漏洞也好,一般针对的就是中大型的目标,但是中大型目标,这种漏洞的话,都会有相对应的防护,简单来说,这个漏洞不是很重要,我们就不细讲了

csrf漏洞比较简单,他不会受到网站脚本、数据库类型的影响,这个漏洞原理,完全就是逻辑上面的一个问题,就是对方有没有去请求数据包的地址,有没有判断数据包的合法性,如果对方有检测合法性,有检测来源的话,那这个csrf漏洞就没有了

比如我现在登录支付宝,然后支付宝向他付款一个数据包,给他抓到了,他知道这个是支付宝的一个付款请求数据包,他把支付宝数据包改成向自己支付数据包,而你的支付宝又是登录状态,这个时候他诱使你打开一下网站,而这个网站就是触发数据包的,在你不知不觉中授权,因为你登录之后,触发付款的数据包。如果说支付宝公司没有检测这种机制的话,那就可以收取他的钱,但是很明显支付宝公司是有检测的

一般小中型网站后台经常有,他是需要很多前提条件的,比如说你想添加后台的账号密码,这个后台添加账号密码的数据包你要知道,这个知道的途径大部分都是要通过你本地搭建跟他一样的源码,然后你自己抓包分析得到的,但是你不知道对方的源码,连什么程序都不清楚,数据包的书写方式、地址信息你也不知道,这个csrf即使有也没有什么作用,这就是造成csrf漏洞不是影响很大的原因

SSRF漏洞会比csrf漏洞重要一些

ssrf漏洞可大可小,你利用的好,就是可大的漏洞,不管是大中小网站,一般都存在ssrf漏洞的安全问题
在这里插入图片描述
SSRF漏洞的影响范围主要是涉及到你的内网,内部系统的安全性

黑客借助web服务器存在的SSRF漏洞,来探测到我们内网的一些资产和信息,如果信息收集的足够,他还会去攻击内网,可大可小,利用的好,信息收集的好,是能够危害到内网安全的,你虽然接触不到,但是可以通过这个接口进去

本地上传:将自己本地的图片,做为一个文件上传到对方上面去
远程上传:很明显产生SSRF漏洞的一个应用,输入要上传文件的地址,对方会将文件上传到自己的服务器上去;对方要上传这个地址的文件,肯定需要去请求,去看,就会触发这个文件当中的后门

http协议可以通过地址探针端口是否开放,而且不仅有http协议,还有其它协议
127.0.0.1是请求本地的

请求http://127.0.0.1:3306,连接对方本地3306端口
在这里插入图片描述
我们可以根据他的返回信息和返回情况,可以实现对它本地的地址实现端口扫描,一般加载时间过长,说明这个端口没有开放,因为他请求不到这个端口的开放情况,通过ssrf,我们可以实现内网的探针

一个网站,它下面有内网系统,内网系统没有联网,其它的网络连不上去,网站上面有ssrf漏洞,这个漏洞以web服务器为跳板,连接内网服务器,因为黑客连接不上内网

ssrf漏洞其实就是以web服务器漏洞为跳板,以这个服务器为支撑,然后去获取内网信息

在ssrf攻击过程中有个前提条件,那就是内网服务器IP地址,我们可以把IP段做为一个字典去跑一下就可以了,看到那个IP地址有返回信息,就知道那个IP地址是存活的,所以这个前提是能够解决的,后面端口先不用管他,后面在搞个常见端口结合确认已经存活的IP地址去跑

SSRF_PHP,JAVA漏洞代码协议运用

端口扫描:针对的就是内网本机端口扫描
指纹识别:版本号信息

各个协议调用探针:http,file,dict,ftp,gopher等
漏洞攻击:端口扫描,指纹识别,漏洞利用,内网探针等http://192.168.64.144/phpmyadmin/
file:///D:/www.txt
dict://192.168.64.144:3306/info
ftp://192.168.64.144:21

可以通过ftp协议,请求到对方ftp服务对应的一些信息,就能看到他上面的盘符信息,能够帮助我们对电脑上面的了解
在这里插入图片描述

我们在使用ssrf的时候,协议的支持面跟脚本是有关系的
在这里插入图片描述

演示案例:

SSRF_漏洞代码结合某漏洞利用测试

hfs在几年前报过漏洞,先通过信息探测到hfs,然后在利用hfs漏洞攻击到主机
我们都可以命令执行了,我们利用命令去下后门木马执行,然后利用这个后门文件回连就可以了

用命令执行,让他下载转发工具,下到内网系统里,然后你在执行命令,让他把流量转发到外网出去,然后你在连接到外网去不就可以了

如何查找ssrf漏洞

在这里插入图片描述
我们先要有功能,才会有关键字,如果关键字有,但是没有这个功能,那也是没用的,所以还是以功能为主
这个漏洞产生的成因就是加载所有输入的数据,输入的数据就会构造成本地地址,或者是内网的IP地址来实现对它本地内网的探针

上传本地图片不可能产生SSRF漏洞,网络图片才有可能

根据网站的应用来取决于有没有这个漏洞,如果网站只是单纯的应用,啥功能都没有,那就说明他不会产生SSRF漏洞,因为SSRF漏洞成因就是会接收一些远程地址,而这个远程地址,我们改成本地地址和内网的一些地址,他会对它的内网或本地进行请求,通过请求的信息来判定本地或者内网的一些资产信息,如果说有漏洞的话,可以直接进行利用,但是这个过程是很漫长的,因为我们要不断的去收集,所以后续的攻击是很麻烦的

一般SSRF漏洞挖到,后面不需要去测试,直接提交,有些厂商可能还是会收的,因为主要是会暴露一些他不希望暴露的东西,因为内网系统之所以放在内网,是因为有些东西他不方便给别人看,而你又利用这个漏洞探针到了,所以它会认为这是严重的

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

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

相关文章

测量温度的优选模块:新型设备M-THERMO3 16

| 具有16个自由选择通道的新型温度测量设备M-THERMO3 16 IPETRONIK推出的温度测量设备——M-THERMO3 16作为新一代设备的首个模块,它为模块化测量技术确立了标准。该模块具有16个通道,各通道不仅分辨率高达24位ADC,而且能够自由选择热电偶类…

2023Q3数据安全政策、法规、标准及报告汇总(附下载)

数据安全处罚事件逐年升高,2023年呈爆发式增长。 截至2023年8月31日,南都大数据研究院通过各地行政执法公示平台、媒体报道等公开渠道收集到146起依据《数据安全法》作出行政处罚决定的案例。2021年公示5起,2022年公示11起,2023年…

如何通过设备维护管理系统实现全员生产维护TPM

前面我们介绍了《什么是全员生产维护TPM?》,接下来我们探讨如何结合PreMaint的设备维护管理系统来实现全员生产维护TPM。 在现代制造业中,设备的可靠性和生产效率对企业的竞争力至关重要。为了实现全员生产维护(Total Productive …

记录vue开发实例

封装的表格组件 <template><div><div style"width: 100%" v-if"showList"><el-table v-loading.lock"loading" :data"dataList":header-cell-style"{background: #F2FCFE,fontSize: 14px,color: #50606D}&…

8.2 JUC - 6.CyclicBarrier

目录 一、是什么&#xff1f;二、使用demo三、注意 一、是什么&#xff1f; CyclicBarrier &#xff1a; 循环栅栏&#xff0c;用来进行线程协作&#xff0c;等待线程满足某个计数。构造时设置计数个数&#xff0c;每个线程执行到某个需要“同步”的时刻调用 await() 方法进行…

【数据结构】栈和队列-- OJ

目录 一 用队列实现栈 二 用栈实现队列 三 设计循环队列 四 有效的括号 一 用队列实现栈 225. 用队列实现栈 - 力扣&#xff08;LeetCode&#xff09; typedef int QDataType; typedef struct QueueNode {struct QueueNode* next;QDataType data; }QNode;typedef struct …

数据结构 | (三) Stack

栈 &#xff1a;一种特殊的线性表&#xff0c;其 只允许在固定的一端进行插入和删除元素操作 。 进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO &#xff08; Last In First Out &#xff09;的原则。 压栈&#xff1a;栈…

c#学习系列相关之多线程(三)----invoke和begininvoke

一、invoke和BeginInvoke的作用 invoke和begininvoke方法的初衷是为了解决在某个非某个控件创建的线程中刷新该控件可能会引发异常的问题。说的可能比较拗口&#xff0c;举个例子&#xff1a;主线程中存在一个文本控件&#xff0c;在一个子线程中要改变该文本的值&#xff0c;此…

(四)列表、元组、字典和集合

Python列表&#xff08;list&#xff09;、元组&#xff08;tuple&#xff09;、字典&#xff08;dict&#xff09;和集合&#xff08;set&#xff09;详解 Python 序列&#xff08;Sequence&#xff09;是指按特定顺序依次排列的一组数据&#xff0c;它们可以占用一块连续的内…

【C/C++】关于vector迭代器失效问题

​&#x1f47b;内容专栏&#xff1a; C/C编程 &#x1f428;本文概括&#xff1a; vector迭代器失效问题 &#x1f43c;本文作者&#xff1a; 阿四啊 &#x1f438;发布时间&#xff1a;2023.10.8 迭代器的主要作用就是让算法能够不用关心底层数据结构&#xff0c;其底层实际就…

C++变量默认初始化

初始化不是赋值&#xff0c;初始化是指创建变量时赋予一个初始值&#xff0c;赋值是指将变量的当前值擦除&#xff0c;赋予新值。 如果定义变量时没有初始化&#xff0c;则变量会被系统默认初始化。“默认值”取决于变量的&#xff1a;类型位置 startmindmap * C变量默认初始…

邮件群发工具哪个好

邮件群发是一种通过电子邮件向多个收件人发送邮件的方式。同时&#xff0c;邮件群发也是一种低成本、高回报的营销手段。因此邮件群发被广泛应用于各种营销活动中&#xff0c;例如活动邀请、新品上线、产品促销等等。而群发邮件最有效的方式就是借助邮件群发工具&#xff0c;而…

常用排序算法详解

1.冒泡排序原理示例代码实现 2.快速排序原理示例代码实现 3.插入排序原理示例代码实现 4.希尔排序原理示例代码实现 5.选择排序原理示例代码实现 6.堆排序原理示例代码实现 7.归并排序原理示例代码实现 本文讲述了常见的排序算法的执行过程&#xff0c;有详细实现过程举例 1.冒…

arm 点灯实验代码以及现象

.text .global _start _start: 1.设置GPIOE寄存器的时钟使能 RCC_MP_AHB4ENSETR[4]->1 0x50000a28 LDR R0,0x50000A28 LDR R1,[R0] ORR R1,R1,#(0x1<<4) 第4位置1 STR R1,[R0] 1.设置GPIOF寄存器的时钟使能 RCC_MP_AHB4ENSETR[4]->1 0x50000a28 LDR R…

自动定时删除磁盘文件的脚本(从文件日期最早的开始删)

#!/bin/bash# 指定的挂载点 MOUNTPOINT"/media/vm/MyDisk512GB"# 设置磁盘大小的限制 (例如&#xff1a;800G) LIMIT$((800 * 1024 * 1024)) # 单位是KB# 获取挂载点的已使用空间 USED_SPACE$(df -kP "$MOUNTPOINT" | tail -1 | awk {print $3})echo &quo…

强化学习------Qlearning算法

简介 Q learning 算法是一种value-based的强化学习算法&#xff0c;Q是quality的缩写&#xff0c;Q函数 Q(state&#xff0c;action)表示在状态state下执行动作action的quality&#xff0c; 也就是能获得的Q value是多少。算法的目标是最大化Q值&#xff0c;通过在状态state下…

day58:ARMday5,GPIO流水灯实验

汇编指令&#xff1a; .text .global _start _start: 1.设置GPIOE GPIOF寄存器的时钟使能 RCC_MP_AHB4ENSETR[5:4]->1 0x50000a28 LDR R0,0x50000a28 LDR R1,[R0] ORR R1,R1,#(0x3<<4) STR R1,[R0]2.设置PE10、PF10、PE8管脚为输出模式&#xff0c;GPIOE_MODER[21…

【gcc】RtpTransportControllerSend学习笔记 1

本文是woder大神 的文章的学习笔记。主要是大神文章: webrtc源码分析(8)-拥塞控制(上)-码率预估 的学习笔记。大神的webrtc源码分析(8)-拥塞控制(上)-码率预估 详尽而具体,堪称神作。因为直接看大神的文章,自己啥也没记住,所以同时跟着看代码。跟着大神走一遍,不求甚解,…

SpringCloud学习笔记-注册微服务到Eureka注册中心

目录 1.在该Module的pom文件中引入eureka依赖2.在该module的src/main/resources/application.yml配置文件3.启动对应的微服务4.查看微服务是否启动成功 假如我有一个微服务名字叫user-service,我需要把它注册到Eureka注册中心,则具体步骤如下: 1.在该Module的pom文件中引入eure…

MQ - 38 Serverless : 基于Serverless架构实现流式数据处理

文章目录 导图Pre概述典型的数据流场景什么是 ServerlessServerless 的定义Serverless Function如何基于 Serverless 实现数据处理数据处理流程底层架构和技术原理两种方案的优劣势对比业务案例和场景分析日志清洗场景事件流处理其他case总结导图