记一次SSRF漏洞的学习和利用

导语:本文主要记录一次我们在复盘嘶吼网站渗透报告时遇到的一个SSRF漏洞。

1.前言

本文主要记录一次我们在复盘嘶吼网站渗透报告时遇到的一个SSRF漏洞。此漏洞并结合腾讯云的API接口,可以获取大量嘶吼服务器的敏感信息。利用这些敏感信息,又可以进行更为深入的渗透。

这篇文章将会发表在嘶吼网站上,渗透测试也是经过了嘶吼的官方授权,各位读者可以放心食用。这里由衷感谢漏洞的提交者。本篇中提到的漏洞已于2019年修复完毕,大家就不要再尝试了,此外,温馨提示:未授权的渗透行为是非法的。�

2.漏洞介绍

SSRF(Server-Side Request Forgery, 服务器端请求伪造) 是一种由攻击者利用服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问,仅能通过内网访问的资源。SSRF 形成的原因可以概述为:服务端提供了从其他服务器获取数据的功能,但没有对目标服务器做任何限制。上述概念听起来有点难度,我们举个例子就能让问题更为清晰:部署在腾讯云的服务器,是可以访问腾讯提供的一个API接口,获取该服务器的内网地址。 我们自己的计算机不在腾讯云的内网中,自然是无法访问这个地址的。老版的嘶吼服务器存在一个SSRF漏洞,我们可以构造特殊的HTTP请求包,使老版嘶吼服务器访问腾讯云的API接口获得内网地址,并把这个地址返回给我们。这就造成了内网地址的泄露,当然利用此漏洞还可以泄露更多的东西。但作为一群爱国青年,我们不能做违法的事情。所以,例子就到此结束。

老版的嘶吼站点中引用了一个开源的编辑器项目laravel-u-editor (UEditor)。该编辑器是由百度web前端研发部开发的富文本web编辑器,拥有不小的使用量。

通过阅读UEditor的源代码,我们可以在LumenController.php发现,参数$sources完全可以自己控制。代码如下:
在这里插入图片描述

而且,在对$sources的值进行判断时,其代码也有些简单,可以在UploadCatch.php中找到关键点,如下图:
在这里插入图片描述

因此,可以通过“?.jpg”绕过这个判断,导致读取任何格式的内容。

3.漏洞利用

正如在我们在第一章中举的例子,这里我们就获取一下嘶吼服务器的内网地址试一试。其具体步骤如下:

A. 首先,我们要查看下腾讯云提供的API内容。链接如下:

https://cloud.tencent.com/document/product/213/4934

内容截图如下:
在这里插入图片描述

在图中,我们可以找到获取内网地址的腾讯云API接口,即图中红框部分。

B. 然后,我们需要构造请求利用该SSRF漏洞使嘶吼访问该 “图片”。链接

如下:

https://www.4hou.com/laravel-u-editor-server/server?action=catchimage&source[]=http://metadata.tencentyun.com/latest/meta-data/loacl-ipv4?.jpg

构造完毕之后,发送该请求,截图如下:
在这里插入图片描述

在请求发送之后,该内网的IPv4地址写入jpg文件,并将jpg文件的路径返回给浏览器。

C. 最后,访问返回给我们的jpg文件链接,截图如下:
在这里插入图片描述

上图中,我们就很顺利的拿到了老版嘶吼的一个内网地址。需要告诉大家的是,该地址已经更新了,不要总想着搞事情。

到此,我们就顺利地利用该SSRF漏洞拿到一些我们感兴趣的信息。当然此SSRF漏洞还有很多其他的利用方式,但受限于当地法律法规,这里只能以404方式展示了。

4.漏洞修复

截止到我们整理这篇文章时,貌似UEditor并没有修复这个漏洞。我们在这里只给出一些临时的解决方案,一个简单有效的临时修复方法就是设置URL白名单以及更为严格的文件类型过滤措施。相信看到这里的各位读者都能够理解这个临时解决方案的含义,这里就不再详细解释了。

5.结语

本次复盘到这里就算是结束了,相信认真读到这里的各位应该会有一些收获。在后续的文章中,我们也会陆陆续续地拿出其他的案例以及其他的漏洞分享给大家,希望各位读者能有所收获。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

android10 关闭默认输入法的“更正建议”

1. 场景 使用系统默认的输入法,在进行输入时,在输入法上方,会显示更正建议列表,同时会干扰我们的输入内容:会自动补全到输入框,而且删除不掉,甚至越删越多,非常讨厌。 如下&#x…

一段凄惨Android 面试经历分享,败在了项目架构原理上……

大家应该看过很多分享面试成功的经验,但根据幸存者偏差的理论,也许多看看别人面试失败在哪里,对自己才更有帮助。 这是一位网友分享的面试经历,他准备了3个月,刚刚参加完字节跳动的第三面,视频面&#xff…

都23年了你还记得渐进式框架是什么意思吗

vue 文章目录 vue前言一、眼见为实举个栗子二、渐进式的优势 前言 渐进式框架是一种能够逐步增强应用功能的框架,它允许开发者在不影响应用性能的情况下,逐步添加新的功能和特性。Vue.js提供了一些基础功能,如数据绑定和组件化,然…

这8个摸鱼神器,千万别让你老板知道!

工欲善其事,必先利其器,对于程序员来说也是如此,想早点下班就不能死脑筋,必须借助于一些开发工具来提高自己的工作效率,小编选取了8款任务/项目管理工具,能助你[打通任督二脉],工作效率大大提升…

React之动态路由创建以及解决刷新白屏问题

动态路由的创建和动态菜单的创建几乎类似,只不过的是,动态路由需要导入组件。这样才能完成跳转。 动态路由与动态菜单一样都需要封装一个转化函数,将后端传来的数据进行转换,转换成我们需要的格式。 需要导入的依赖 导入路由use…

【ChatGPT】阿里版 ChatGPT 突然官宣意味着什么?

Yan-英杰的主页 悟已往之不谏 知来者之可追 C程序员,2024届电子信息研究生 目录 阿里版 ChatGPT 突然官宣 ​ ChatGPT 技术在 AI 领域的重要性 自然语言生成 上下文连续性 多语言支持 ChatGPT 未来可能的应用场景 社交领域 商业领域 ​编辑 医疗领域…

网络安全常用术语

肉鸡 肉鸡指的就是被黑客成功入侵并取得控制权限的电脑。黑客们可以随意的控制肉鸡,就像在使用自己的电脑一样,很形象的比喻,就像是养的肉鸡,任黑客宰杀和利用。关键的是,在成为肉鸡后,只要黑客不对电脑进…

linux|进程间通信如何加锁

进程间通信有一种[共享内存]方式,大家有没有想过,这种通信方式中如何解决数据竞争问题?我们可能自然而然的就会想到用锁。但我们平时使用的锁都是用于解决线程间数据竞争问题,貌似没有看到过它用在进程中,那怎么办&…

Java——把数组排成最小的数

题目链接 牛客网在线oj题——把数组排成最小的数 题目描述 输入一个非负整数数组numbers,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 例如输入数组[3,32,321],则打印出这三个数字能…

如何提高三维模型OSGB格式转换3DTILES的转换速度和数据质量

如何提高三维模型OSGB格式转换3DTILES的转换速度和数据质量 提高三维模型从OSGB格式转换为3DTILES格式的转换速度和数据质量,可以从以下几个方面进行优化: 1、选用高效的转换工具:选择高效的转换工具是提高转换速度和数据质量的关键。目前市…

【react从入门到精通】深入理解React生命周期

文章目录 前言React技能树React的生命周期是什么React v16.0前的生命周期组件初始化(initialization)阶段组件挂载(Mounting)阶段组件更新(update)阶段组件销毁阶段 React v16.4 的生命周期总结写在最后 前言 在上一篇文章《react入门这一篇就够了》中我们已经掌握了React的基本…

ABTEST平台建设思路与方案

导读 ABTest的作用: 用ABTEST的结果数据,论证是因为某个业务方案的调整,对产品能力的影响。ABTEST是一个过程,只是为了证明改动的效果,其最终的阶段一定是对某个方案进行推全结束实验,避免稳定的业务流程…

docker 安装 datax和datax-web 之 datax-web登录时提示账号或密码错误

docker 安装docker 安装 datax和datax-web 安装教程地址: https://www.cnblogs.com/leihongnu/p/16612273.html 根据该博客的教程安装成功后,登录页面能打开,但是所提供的账户密码一直报错,这个就需要根据日志一步步去寻找原因了…

管理后台项目-07-菜单管理和动态展示菜单和按钮

目录 1-菜单管理 1.1-菜单管理列表 1.2-添加|修改功能 1.3-删除菜单 2-动态菜单按钮展示 2.1-路由文件的整理 2.2-动态展示不同的路由 1-菜单管理 当用户点击菜单管理的时候,会展示当前所有菜单,树型结构展示...并且可以对菜单进行新增编辑删除操…

2023-04-27:用go语言重写ffmpeg的remuxing.c示例。

2023-04-27:用go语言重写ffmpeg的remuxing.c示例。 答案2023-04-27: ffmpeg的remuxing.c是一个用于将多媒体文件从一种容器格式转换为另一种容器格式的命令行工具。它可以将音频、视频和字幕等元素从源文件中提取出来,并按照用户指定的方式…

基于SAM的二次开发案例收集分享

一、AnyLabeling[1]——制作人:vietanhdev AnyLabeling LabelImg Labelme Improved UI Autolabeling AnyLabeling软件是一个集成了YOLO、Segment Anything模型(AI支持)的高效数据标注工具,它可以通过点击目标的方式完成目标检…

Windows Vscode 远程连接Ubuntu, vscode检测到#include错误请更新includePath的解决方法

(闭坑)首先,我们要明白一点,就是我们在windows用vscode 远程连接了Ubuntu后,我们的Vscode的环境就是Ubuntu,不再是window了,所以出现问题,应该想到的是Ubuntu上的环境问题,而不是win…

机器学习与深度学习——通过SVM线性支持向量机分类鸢尾花数据集iris求出错误率并可视化

线性支持向量机 先来看一下什么叫数据近似线性可分,如下图所示,蓝色圆点和红色圆点分别代表正类和负类,显然我们不能找到一个线性的分离超平面将这两类完全正确的分开;但是如果将数据中的某些特异点(黑色箭头指向的点)去除之后&a…

根据cadence设计图学习硬件知识day06 了解一些电源转化芯片和 稳压器 和 开关芯片

1. TPL920 (高精度线性稳压器) 1.1.TPL920 介绍 TPL920系列产品是2A大电流、6μVRMS低噪声、高PSRR、高精度线性稳压器,通常具有在2A负载条件下的110 mV超低电压降。这TPL920系列产品同时支持固定输出电压范围从0.8伏到3.95伏,输出电压可调范围为0.8V至…

肝一肝设计模式【四】-- 建造者模式

系列文章目录 肝一肝设计模式【一】-- 单例模式 传送门 肝一肝设计模式【二】-- 工厂模式 传送门 肝一肝设计模式【三】-- 原型模式 传送门 肝一肝设计模式【四】-- 建造者模式 传送门 文章目录 系列文章目录前言一、什么是建造者模式二、举个栗子三、静态内部类写法四、开源框…