当前位置: 首页 > news >正文

【网络安全】-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题数字转换为十六进制数

题目&#xff1a; 题解&#xff1a; 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 快速教程说明 适用人群 有其他语言编程基础&#xff0c;或了解过python的群体&#xff0c;至少需要知道变量、对象、函数等基本概念想快速通过python实现一些功能&#xff0c;却不想了解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 对熵权法的结果分析 三、 提供的代码如何修改&#xff1f;四、 为什么确定极小化指标&…...

Redis——通用命令

目录 Redis通用命令Redis中最核心的两个命令getset Redis全局命令keys语法注意事项 existsdel(delete)expirettlredis的key的过期策略是怎么实现的&#xff1f;了解拓展 type总结 Redis通用命令 Redis的命令非常非常多&#xff0c;所以 1. 掌握常用命令&#xff08;多操作练习…...

(k8s)kubernetes 挂载 minio csi 的方式(pod挂载pvc存在csi驱动问题,挂载不上)

一、安装Minio&#xff08;Minio分布式集群搭建部署_minio集群最少几台-CSDN博客&#xff09; 生成accessKeyID和secretAccessKey&#xff1a; 二、安装csi-s3插件(在k8s集群上) 首先我们把插件的yaml文件都下载下来&#xff0c;为了保证版本测试的一致性&#xff0c;我们下载…...

python tkinter

基本使用 基于tkinter创建 GUI基本四步&#xff1a;窗口->组件->布局->事件 1.创建窗口对象 from tkinter import *root Tk() # 创建窗口root.mainloop() # 进入事件循环 2.创建组件 按钮文本等组件 btn Button(root) # 创建Button组件&#xff0c;使组件在…...

Flink CEP(复杂事件处理)高级进阶

Flink CEP(Complex Event Processing,复杂事件处理)是 Apache Flink 中用于复杂事件模式检测的库。它允许用户定义复杂的事件模式,从流数据中检测出符合模式的事件序列。这在实时监控、欺诈检测、用户行为分析等场景中非常有用。 Flink CEP 高级进阶 为了深入理解和使用 …...

libmodbus:写一个modbusTCP服务

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 源码指引&#xff1a;github源…...

函数模板(初阶)

Hello&#xff0c;大家好&#xff0c;我们大家都知道&#xff0c;C这个编程语言是由C语言继承而来的&#xff0c;因为是继承&#xff0c;所以我们的C就要做出一些区分&#xff0c;要不然的话&#xff0c;就和C语言没有本质上的区别了&#xff0c;我们现在在社会中使用比较多的是…...

中间件之RocketMQ

RocketMQ是一个开源的分布式消息队列系统&#xff0c;起源于阿里巴巴集团内部。最初&#xff0c;RocketMQ&#xff08;前身为Metaq&#xff09;被设计为满足阿里巴巴集团内部大规模分布式系统下的高吞吐量、低延迟和高可靠性的消息传递需求。随着其在阿里巴巴内部的广泛应用和不…...

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 概述 二叉查找树,又称二叉排序树或者二叉搜索树 二叉查找树的特点&#xff1a; 每一个节点上最多有…...

JavaScript 事件处理

一、简介 ​ 事件&#xff1a;发生在HTML元素上的事情&#xff0c;可以是用户的行为&#xff0c;也可以是浏览器的行为&#xff0c;如 用户点击了某个HTML元素用户将鼠标移动到某个HTML元素上用户输入数据时光标离开页面加载完成 ​ 事件源&#xff1a;事件触发的源头&#xf…...

容器技术--Docker应用部署

应用部署 容器部署mysql 搜索并拉取镜像;基于镜像启动容器,注意端口映射、目录映射启动后即可连接# 搜索镜像 docker search mysql # 拉取镜像 docker pull mysql:5.7 # docker pull mysql 默认拉取最新的# 创建mysql容器, -p端口映射(宿主端口:容器端口) -e 环境变量,镜…...

医院管理|基于java的医院管理系统小程序(源码+数据库+文档)

医院管理系统小程序 目录 基于java的医院管理系统小程序 一、前言 二、系统设计 三、系统功能设计 医生信息管理 排班信息管理 科室信息管理 科室预约 病历信息 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a;…...

golang学习笔记21——golang协程管理及sync.WaitGroup的使用

推荐学习文档 golang应用级os框架&#xff0c;欢迎stargolang应用级os框架使用案例&#xff0c;欢迎star案例&#xff1a;基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总想学习更多golang知识&#xff0c;这里有免费的golang学习笔…...

C++初阶大全

目录 一.命名空间 1.命名空间定义 2.命名空间使用 二.C输入&输出 三.缺省参数 四. 函数重载 五.引用 1.常引用 2.传值、传引用效率比较 3.引用和指针的区别 4.引用和指针的不同点: 小知识点: 六.内联函数 七.auto关键字(C11) 1.auto的使用细则 八.基于范围…...

使用Redis实现用户关注博客的推模式

目录 一、思路 二、实现代码&#xff1a; 一、思路 发布者&#xff1a; 这里采用redis的zset结构&#xff0c;将键设置为被推送用户id&#xff0c;值设置为博客id&#xff0c;score设置为时间戳 推送之前先查到当前发布博客用户的粉丝有哪些&#xff0c;然后去循环挨个推送…...

python常用模块之time、datetime、randow(14)

文章目录 前言1、time模块1.1 导入模块1.2 使用方法1.2.1 时间戳1.2.2 程序休眠1.2.3 扩展&#xff1a;按某种格式显示当前时间1.2.4 结构化时间 2、datetime模块2.1 导入模块2.2 使用方法2.2.1 得到当前系统的时间2.2.2 拓展&#xff1a;编写一个时钟小程序 3、random模块3.1 …...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎&#xff1a;品融电商&#xff0c;一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中&#xff0c;品牌如何破浪前行&#xff1f;自建团队成本高、效果难控&#xff1b;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中&#xff0c;有时需要在系统启动时自动执行某些命令&#xff0c;特别是需要 sudo权限的指令。为了实现这一功能&#xff0c;可以使用多种方法&#xff0c;包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法&#xff0c;并提供…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

今日科技热点速览

&#x1f525; 今日科技热点速览 &#x1f3ae; 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售&#xff0c;主打更强图形性能与沉浸式体验&#xff0c;支持多模态交互&#xff0c;受到全球玩家热捧 。 &#x1f916; 人工智能持续突破 DeepSeek-R1&…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...