【网络安全】-ssrf服务器请求伪造攻击-burp
SSRF攻击服务器请求伪造攻击
CSRF攻击跨站请求伪造攻击也称客户端请求伪造攻击
两种攻击最主要的区别是一个在服务器,一个在客户端。
文章目录
前言 什么是SSRF攻击?
1.分类:
针对服务器的 SSRF 攻击:
针对后端系统的SSRF攻击:
2.SSRF攻击的绕过
url解析绕过:
ip地址进制转换:
指向任意IP的域名xip.io
协议限制绕过
3.ssrf攻击的防护:
总结
前言 什么是ssrf攻击?
由hacker构造请求,利用存在缺陷的Web应用作为代理,让服务端发起请求。
1.分类:
针对服务器的 SSRF 攻击:
攻击的定义:
由hacker构造请求,利用存在缺陷的Web应用服务器作为代理,让服务器发起请求的攻击。
这种攻击允许攻击者绕过对源IP地址的检查,访问受限的内网资源,甚至从内部系统中窃取数据、执行远程代码或对特定服务发起拒绝服务攻击
攻击的步骤:
1.发现漏洞:首先识别出可以触发服务器发起HTTP请求的点,如图片加载、文件下载、API请求等功能。
2.请求构造:创建一个精心设计的请求,这个请求将由服务器发送,目的可能是与服务器的内部网络或者外部恶意服务器通信。
3.执行与利用:将构造的请求发送到漏洞点,让服务器不自觉地执行该请求,将结果返回给攻击者或影响内部系统。
举例:burp靶场-针对本地服务器的基本 SSRF
描述:

步骤:
1.访问某个商品,点击“检查库存”,在 Burp Suite 中拦截该请求,并将其发送给 Burp Repeater。

2.将参数中的 URL 更改stockApi=http://localhost/admin,这应该会显示管理界面,表名我们ssrf成功,验证访问admin。

3.阅读 HTML 以识别要删除目标用户的 URL,
即:http://localhost/admin/delete?username=carlos

修改请求头:

Send 返回界面:表明我们已经发起SSRF攻击,删除成功


总结:针对本地服务器的基本 SSRF
就是对服务器发出一个正常的请求,bp抓包截取服务器对我们的回复,对内容进行修改,让服务器执行的正常的请求->异常请求,进而影响其内部系统,如本题,就是将查询库存->删除用户。
针对后端系统的SSRF攻击:
攻击的定义:
hacker利用后端系统中未严格校验用户输入或存在其他漏洞的功能,如文件包含、URL重定向等,通过构造恶意的URL或请求,诱使后端系统向攻击者指定的目标发送请求。
攻击的影响:
请求是由后端系统发起的,因此可以绕过针对客户端的直接防护措施,很难被用户直接察觉,一旦中招,会导致用户敏感信息泄露、未授权访问控制系统资源等后果。
甚至hacker还可以利用SSRF漏洞作为跳板,进一步发起其他类型的攻击,如SQL注入、命令执行等。
攻击的步骤:
1.请求构造:攻击者可以构造一个指向内部数据库的URL或指向恶意服务的URlL并提交给后端系统。
2.执行与利用:后端系统在处理该请求时,会尝试访问该URL指向的资源,从而触发SSRF攻击。
举例:burp靶场-针对后端服务器的基本 SSRF
描述:

1.访问某个商品,点击“检查库存”,在 Burp Suite 中拦截该请求,并将其发送给 Burp Intruder。

2.单击“清除§”,更改参数stockApi,http://192.168.0.1:8080/admin

然后突出显示 IP 地址的最后一个八位字节(数字1),单击“添加§”。

3.切换到Payloads选项卡,将payload类型改为Numbers,

ip地址只可能在1~255之间,所以我们在From和To框中分别输入1、255,至于以及Step停顿时间自己来定,但绝不能是0,因为这会对服务器造成极大的伤害,导致网站挂掉,通常Step停顿时间是1。

注意:最底下把勾去掉

4.点击“开始攻击”。
单击“length”列,可以看到一个状态为 200 的条目,说明http://192.168.0.135:8080/admin是爆破成功的服务器url
5.点击这个请求,发送给Burp Repeater.


并将其中的路径改为stockApi:/admin/delete?username=carlos(识别要删除的目标用户)
点击send。

返回正常数据,说明我们成功进行ssrf攻击

2.SSRF攻击的绕过
url解析绕过:
http://域名.com@10.10.10.10
ip地址进制转换:
举例:192.168.0.1
8进制格式:0300.0250.0.1
16进制格式:0xC0.0xA8.0.1
10进制整数格式:3232235521
指向任意IP的域名xip.io
举例:10.0.0.1.xip.io resolves to 10.0.0.1
协议限制绕过
当url协议限定只为http(s)时,可以利用follow redirect 特性构造3o2跳转服务结合合dict:// fle:/ gopher://
3.ssrf攻击的防护:
1.黑名单验证:过滤内网地址,过滤部分协议,对返回的内容进行识别,内网服务开启鉴权。
2.严格校验用户输入的URL:对所有用户提交的URL参数进行严格的白名单验证,只允许访问预定义的可信域名或路径。例如,限制请求的协议(HTTP、HTTPS)、主机名和端口号,通常只开放80、443等常用端口。
3.对返回内容进行识别:首先禁用URLOPT FOLLOWLOCATION;然后通过域名获取目标ip,并过滤内部ip;最后识别返回的内容是否与假定内容一致。
总结
ssrf攻击运行在内网或本地的应用程序,利用fle协议读取本地文件,可以对内网,本地进行端口扫描,获取一些服务(banner)的信息,仅仅使用get参数就可以实现对内外网的攻击。
相关文章:
【网络安全】-ssrf服务器请求伪造攻击-burp
SSRF攻击服务器请求伪造攻击 CSRF攻击跨站请求伪造攻击也称客户端请求伪造攻击 两种攻击最主要的区别是一个在服务器,一个在客户端。 文章目录 前言 什么是SSRF攻击? 1.分类: 针对服务器的 SSRF 攻击: 针对后端系统的SSRF攻击: …...
C语言 | Leetcode C语言题解之第405题数字转换为十六进制数
题目: 题解: char * toHex(int num){int i0;char *nums(char*)malloc(sizeof(char)*32);unsigned int newnum(unsigned int)num;if(num0){nums[0]0;nums[1]\0;return nums;}while(newnum>1){int flagnewnum%16;newnum/16;if(flag<9){nums[i]flag0…...
Python快速入门 —— 第一节:基础类型
Python 快速教程说明 适用人群 有其他语言编程基础,或了解过python的群体,至少需要知道变量、对象、函数等基本概念想快速通过python实现一些功能,却不想了解python的底层实现的人群想快速了解python语言框架的人群有兴趣了解python的任何人…...
评价类——熵权法(Entropy Weight Method, EWM),完全客观评价
目录 一、 熵权法赋权代码说明1.1 介绍 二、 手把手教你运行代码2.1 数据示例2.2 可直接运行代码2.3 shangquanfa_eg_Sheet1.csv数据可视化2.4 代码运行过程截屏2.5 代码运行结果截屏2.6 对熵权法的结果分析 三、 提供的代码如何修改?四、 为什么确定极小化指标&…...
Redis——通用命令
目录 Redis通用命令Redis中最核心的两个命令getset Redis全局命令keys语法注意事项 existsdel(delete)expirettlredis的key的过期策略是怎么实现的?了解拓展 type总结 Redis通用命令 Redis的命令非常非常多,所以 1. 掌握常用命令(多操作练习…...
(k8s)kubernetes 挂载 minio csi 的方式(pod挂载pvc存在csi驱动问题,挂载不上)
一、安装Minio(Minio分布式集群搭建部署_minio集群最少几台-CSDN博客) 生成accessKeyID和secretAccessKey: 二、安装csi-s3插件(在k8s集群上) 首先我们把插件的yaml文件都下载下来,为了保证版本测试的一致性,我们下载…...
python tkinter
基本使用 基于tkinter创建 GUI基本四步:窗口->组件->布局->事件 1.创建窗口对象 from tkinter import *root Tk() # 创建窗口root.mainloop() # 进入事件循环 2.创建组件 按钮文本等组件 btn Button(root) # 创建Button组件,使组件在…...
Flink CEP(复杂事件处理)高级进阶
Flink CEP(Complex Event Processing,复杂事件处理)是 Apache Flink 中用于复杂事件模式检测的库。它允许用户定义复杂的事件模式,从流数据中检测出符合模式的事件序列。这在实时监控、欺诈检测、用户行为分析等场景中非常有用。 Flink CEP 高级进阶 为了深入理解和使用 …...
libmodbus:写一个modbusTCP服务
初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…...
函数模板(初阶)
Hello,大家好,我们大家都知道,C这个编程语言是由C语言继承而来的,因为是继承,所以我们的C就要做出一些区分,要不然的话,就和C语言没有本质上的区别了,我们现在在社会中使用比较多的是…...
中间件之RocketMQ
RocketMQ是一个开源的分布式消息队列系统,起源于阿里巴巴集团内部。最初,RocketMQ(前身为Metaq)被设计为满足阿里巴巴集团内部大规模分布式系统下的高吞吐量、低延迟和高可靠性的消息传递需求。随着其在阿里巴巴内部的广泛应用和不…...
linux第二课(docker的安装使用)
目录 一.关于docker (1)背景引入 (2)docker介绍 (3)功能 (4)Docker架构 二.docker的安装及相关的命令 (1)docker的安装 (2)docker的配置 (3)docker镜像命令 (4)容器命令 三.docker安装myaql 编辑 四.数据卷挂载 1.数据卷挂载引入 2.数据卷挂载图解 3.数据卷的安装…...
Java数据存储结构——二叉查找树
文章目录 22.1.2二叉查找树22.1.2.1 概述22.1.2.1二叉查找树添加节点22.1.2.2二叉查找树查找节点22.1.2.3 二叉树遍历22.1.2.4 二叉查找树的弊端 22.1.2二叉查找树 22.1.2.1 概述 二叉查找树,又称二叉排序树或者二叉搜索树 二叉查找树的特点: 每一个节点上最多有…...
JavaScript 事件处理
一、简介 事件:发生在HTML元素上的事情,可以是用户的行为,也可以是浏览器的行为,如 用户点击了某个HTML元素用户将鼠标移动到某个HTML元素上用户输入数据时光标离开页面加载完成 事件源:事件触发的源头…...
容器技术--Docker应用部署
应用部署 容器部署mysql 搜索并拉取镜像;基于镜像启动容器,注意端口映射、目录映射启动后即可连接# 搜索镜像 docker search mysql # 拉取镜像 docker pull mysql:5.7 # docker pull mysql 默认拉取最新的# 创建mysql容器, -p端口映射(宿主端口:容器端口) -e 环境变量,镜…...
医院管理|基于java的医院管理系统小程序(源码+数据库+文档)
医院管理系统小程序 目录 基于java的医院管理系统小程序 一、前言 二、系统设计 三、系统功能设计 医生信息管理 排班信息管理 科室信息管理 科室预约 病历信息 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取:…...
golang学习笔记21——golang协程管理及sync.WaitGroup的使用
推荐学习文档 golang应用级os框架,欢迎stargolang应用级os框架使用案例,欢迎star案例:基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总想学习更多golang知识,这里有免费的golang学习笔…...
C++初阶大全
目录 一.命名空间 1.命名空间定义 2.命名空间使用 二.C输入&输出 三.缺省参数 四. 函数重载 五.引用 1.常引用 2.传值、传引用效率比较 3.引用和指针的区别 4.引用和指针的不同点: 小知识点: 六.内联函数 七.auto关键字(C11) 1.auto的使用细则 八.基于范围…...
使用Redis实现用户关注博客的推模式
目录 一、思路 二、实现代码: 一、思路 发布者: 这里采用redis的zset结构,将键设置为被推送用户id,值设置为博客id,score设置为时间戳 推送之前先查到当前发布博客用户的粉丝有哪些,然后去循环挨个推送…...
python常用模块之time、datetime、randow(14)
文章目录 前言1、time模块1.1 导入模块1.2 使用方法1.2.1 时间戳1.2.2 程序休眠1.2.3 扩展:按某种格式显示当前时间1.2.4 结构化时间 2、datetime模块2.1 导入模块2.2 使用方法2.2.1 得到当前系统的时间2.2.2 拓展:编写一个时钟小程序 3、random模块3.1 …...
Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...
PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...
SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...
微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...
Mobile ALOHA全身模仿学习
一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...
