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

目录

    • 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.rhkb.cn/news/153333.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Spring Boot】SpringBoot 单元测试

SpringBoot 单元测试 一. 什么是单元测试二. 单元测试的好处三. Spring Boot 单元测试单元测试的实现步骤 一. 什么是单元测试 单元测试(unit testing),是指对软件中的最⼩可测试单元进⾏检查和验证的过程就叫单元测试。 二. 单元测试的好处…

c语言文件操作详解:fgetc,fputc,fgets,fputs,fscanf,,fprintf,fread,fwrite的使用和区别

前言:在对于c语言的学习中,我们为了持续使用一些数据,为了让我们的数据可以在程序退出后仍然保存并且可以使用,我们引入了文件的概念和操作,本文旨在为大家分享在文件操作中常用的输入输出函数的使用方式和技巧&#x…

计算机的体系与结构

文章目录 前言一、冯诺依曼体系二、现代计算机的结构总结 前言 今天给大家介绍计算机的体系和结构,分为两个板块:冯诺依曼体系和现代计算机的结构。 一、冯诺依曼体系 冯诺依曼体系是将程序指令和数据一起存储的计算机设计概念结构。 冯诺依曼体系可以…

mybatis配置entity下不同文件夹同类型名称的多个类型时启动springboot项目出现TypeException源码分析

记录问题:当配置了 mybatis.type-aliases-packagecom.runjing.erp.entity 配置项时,如果entity文件夹下存在不同子文件夹下的同名类型时,mybatis初始化加载映射时会爆出org.apache.ibatis.type.TypeException: The alias TestDemo…

SpringBoot集成WebSocket讲解

文章目录 1 WebSocket1.1 简介1.2 WebSocket作用和调用1.2.1 作用1.2.2 js端调用 1.3 Javax1.3.1 服务端1.3.1.1 服务端接收1.3.1.2 服务端集成1.3.1.3 ping和pong消息 1.3.2 客户端1.3.2.1 客户端接收1.3.2.2 客户端发送 1.4 WebMVC1.4.1 服务端1.1.4.1 服务端接收1.1.4.2 服务…

如何列出 Ubuntu 和 Debian 上已安装的软件包

当你安装了 Ubuntu 并想好好用一用。但在将来某个时候,你肯定会遇到忘记曾经安装了那些软件包。 这个是完全正常。没有人要求你把系统里所有已安装的软件包都记住。但是问题是,如何才能知道已经安装了哪些软件包?如何查看安装过的软件包呢&a…

集线器、交换机、路由器是如何转发包的

集线器、交换机、路由器是如何转发包的 集线器交换机MAC地址表的维护 路由器路由表中的信息路由器的包接收操作查询路由表确定输出端口找不到匹配路由时选择默认路由包的有效期通过分片功能拆分大网络包路由器发送操作中的一些特点 参考文档 集线器 集线器是一层(物…

Springcloud中间件-----分布式搜索引擎 Elasticsearch

该笔记是根据黑马程序员的课来自己写了一遍的,b站有对应教程和资料 第一部分 第二部分 第三部分 # 分布式搜索引擎01 – elasticsearch基础 0.学习目标 1.初识elasticsearch 1.1.了解ES 1.1.1.elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎&#xff0c…

【centos7安装ElasticSearch】

概述 最近工作中有用到ES ,当然少不了自己装一个服务器捣鼓。本文的ElasticSearch 的版本: 7.17.3 一、下载 ElasticSearch 点此下载 下载完成后上传至 Linux 服务器,本文演示放在: /root/ 下,进行解压&#xff1…

C++对string进行大小写转换的三种方法

C对string进行大小写转换的三种方法 方法一&#xff1a;下标 #include <iostream> #include <string> using namespace std;int main() {string s "ABCDEFG";for( int i 0; i < s.size(); i ){s[i] tolower(s[i]);}cout<<s<<endl;re…

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…

【技能树笔记】网络篇——练习题解析(五)

目录 前言 一、应用层的作用 1.1 应用层的作用 二、HTTP协议 2.1 HTTP协议 三、FTP协议 3.1 FTP协议 四、DNS协议 4.1 DNS协议 五、DHCP协议 5.1 DHCP协议 六、邮件协议 6.1 电子邮件协议 总结 前言 本篇文章给出了CSDN网络技能树中的部分练习题解析&#xff0c…

【深蓝学院】手写VIO第6章--视觉前端--笔记

第5章相关内容&#xff0c;还是CSDN的传统Markdown编辑器好用。 视觉前段在14讲课程中已经讲过&#xff0c;这里再简单复习一下。 1. 前端工作的定性比较&#xff0c;分析 这一节讲了很多关于前端的方法框架的对比讨论&#xff0c;后面看完了相关的论文之后强烈建议再回来听一…

【java计算机毕设】 留守儿童爱心捐赠管理系统 springboot vue html mysql 送文档ppt

1.项目视频演示 【java计算机毕设】留守儿童爱心捐赠管理系统 springboot vue html mysql 送文档ppt 2.项目功能截图 3.项目简介 后端&#xff1a;springboot&#xff0c;前端&#xff1a;vue&#xff0c;html&#xff0c;数据库&#xff1a;mysql&#xff0c;开发软件idea 留…

Vue数据代理的原理

一、Object.defineProperty方法 我们可以使用一个Object.defineProperty方法给一个对象添加属性&#xff0c;并对该属性进行权限设置 语法格式如下&#xff1a; Object.defineProperty(对象 , "属性名" , { // 配置项 }) let Person {name:"寻霖",age:1…

数据结构:排序- 插入排序(插入排序and希尔排序) , 选择排序(选择排序and堆排序) , 交换排序(冒泡排序and快速排序) , 归并排序

目录 前言 复杂度总结 预备代码 插入排序 1.直接插入排序: 时间复杂度O(N^2) \空间复杂度O(1) 复杂度&#xff08;空间/时间&#xff09;&#xff1a; 2.希尔排序&#xff1a; 时间复杂度 O(N^1.3~ N^2&#xff09; 空间复杂度为O(1) 复杂度&#xff08;空间/时间&#…

ctfshow web入门 php特性 web131-web135

1.web131 和上题一样差不多&#xff0c;正则最大回溯次数绕过 import requests url"" data{f:very*250000360Dctfshow } rrequests.post(url,datadata) print(r.text)2.web132 通过扫描发现robots.txt,访问/admin发现源码 &&和||都是短路运算符 只要满足co…

PyCharm搭建Scrapy环境

Scrapy入门 1、Scrapy概述2、PyCharm搭建Scrapy环境3、Scrapy使用四部曲4、Scrapy入门案例4.1、明确目标4.2、制作爬虫4.3、存储数据4.4、运行爬虫 1、Scrapy概述 Scrapy是一个由Python语言开发的适用爬取网站数据、提取结构性数据的Web应用程序框架。主要用于数据挖掘、信息处…

景联文科技:AI大模型强势赋能,助力自动驾驶迭代升级

我国一直以来都将自动驾驶作为新兴产业发展的重点领域之一&#xff0c;工信部等相关部委出台了一系列自动驾驶发展战略、规划和标准&#xff0c;一些地方政府也在积极开展关于自动驾驶的地方立法&#xff0c;为自动驾驶技术的研发和应用提供更加具体的法律保障。例如&#xff0…