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

news2025/1/17 21:43:51

导语:本文主要记录一次我们在复盘嘶吼网站渗透报告时遇到的一个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.结语

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

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

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

相关文章

阿里测试8年,肝到P8只剩他了····

在阿里工作了8年,工作压力大,节奏快,但是从技术上确实得到了成长,尤其是当你维护与大促相关的系统的时候,熬到P7也费了不少心思,小编也是个爱学习的人,把这几年的工作经验整理成了一份完整的笔记…

玩转ChatGPT提示词 持续更新·······

导语: 众所周知,在AI的世界里,提示词就是和AI沟通语言的桥梁,提示关键词常用于AI对话及AI绘画等相关场景,通过准确的使用关键词,你就能更好的让AI辅助自己的工作,其中的成分重要性不言而喻&…

黑客教程,从零基础入门到精通

学前感言: 1.这是一条坚持的道路,三分钟的热情可以放弃往下看了. 2.多练多想,不要离开了教程什么都不会了.最好看完教程自己独立完成技术方面的开发. 3.有时多google,baidu,我们往往都遇不到好心的大神,谁会无聊天天给你做解答. 4.遇到实在搞不懂的,可以先放放,以后再来解决. …

c++标准模板(STL)(std::array)(三)

定义于头文件 <array> template< class T, std::size_t N > struct array;(C11 起 std::array 是封装固定大小数组的容器。 此容器是一个聚合类型&#xff0c;其语义等同于保有一个 C 风格数组 T[N] 作为其唯一非静态数据成员的结构体。不同于 C 风格数组…

C#非常实用的技巧

1、解压和压缩 .NET Framework 4.5以上版本&#xff1a; string zipFilePath "C:\path\to\file.zip";string destFolder "C:\path\to\destination\folder";using (var archive ZipFile.OpenRead(zipFilePath)){foreach (var entry in archive.Entries…

【Python】【进阶篇】14、Django创建第一个项目

目录 Django创建第一个项目1. 第一个项目BookStore1) BookStore项目创建 2. Django项目配置文件1) manage.py文件2) __init__.py文件3) settings.py文件4) urls.py文件5) wsgi.py文件 Django创建第一个项目 在上一章中&#xff0c;我们完成了开发环境的搭建工作。 本章我们将学…

网络安全基础入门学习路线

在大多数的思维里总觉得学习网络安全得先收集资料、学习编程、学习计算机基础&#xff0c;这样不是不可以&#xff0c;但是这样学效率太低了&#xff01; 你要知道网络安全是一门技术&#xff0c;任何技术的学习一定是以实践为主的。也就是说很多的理论知识其实是可以在实践中…

【一起撸个DL框架】4 反向传播求梯度

CSDN个人主页&#xff1a;清风莫追 欢迎关注本专栏&#xff1a;《一起撸个DL框架》 文章目录 4 反向传播求梯度&#x1f965;4.1 简介4.2 导数与梯度4.3 链式法则4.4 示例&#xff1a;y2x1的梯度 4 反向传播求梯度&#x1f965; 4.1 简介 上一篇&#xff1a;【一起撸个DL框架】…

Python标准数据类型-String(字符串)

✅作者简介&#xff1a;CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1 &#x1f4c3;个人主页&#xff1a;hacker707的csdn博客 &#x1f525;系列专栏&#xff1a;零基础入门篇 &#x1f4ac;个人格言&#xff1a;不断的翻越一座又一座的高山…

MATLAB符号运算(七)

目录 1、实验目的&#xff1a; 2、实验内容&#xff1a; 1、实验目的&#xff1a; 1&#xff09;掌握定义符号对象和创建符号表达式的方法&#xff1b; 2&#xff09;掌握符号运算基本命令和规则&#xff1b; 3&#xff09;掌握符号表达式的运算法则以及符号矩阵运算&#xf…

大型Saas系统的权限体系设计(二)

X0 上期回顾 上文《大型Saas系统的权限体系设计(一)》提到2B的Saas系统的多层次权限体系设计的难题&#xff0c;即平台、平台的客户、客户的客户&#xff0c;乃至客户的客户的客户如何授权&#xff0c;这个可以通过“权限-角色-岗位”三级结构来实现。 但这个只是功能权限&am…

mac免费杀毒软件哪个好用?如何清理mac系统需要垃圾

CleanMyMac x是一款功能强大的Mac系统优化清理工具&#xff0c;使用旨在帮助用户更加方便的清理您系统中的所有垃圾&#xff0c;从而加快电脑运行速度&#xff0c;保持最佳性能&#xff0c;更加稳定、流畅、快速&#xff01;&#xff01;&#xff01; CleanMyMac X无疑是目前m…

C++内存管理基础

文章目录 前言1. C/C内存分布2. C语言中动态内存管理方式3. C中动态内存管理3.1 new/delete操作内置类型3.2 new和delete操作自定义类型 4. operator new与operator delete函数4.1 operator new与operator delete函数&#xff08;重点&#xff09; 5. new和delete的实现原理5.1…

hana odata batch

sap 博客有写 odata batch 处理前&#xff0c;先看一张图 In this blog post,we are going to see how to send a Odata Batch Request to the SAP Cloud for Customer system using POSTMAN Tool. Answers to expect from this post? How to use batch request in the POS…

『python爬虫』04. 爬虫需要知道的HTTP协议知识(保姆级图文)

目录 1. HTTP协议是什么&#xff1f;2. HTTP协议结构3. 爬⾍需要的请求头和响应头内容总结 欢迎关注 『python爬虫』 专栏&#xff0c;持续更新中 欢迎关注 『python爬虫』 专栏&#xff0c;持续更新中 1. HTTP协议是什么&#xff1f; HTTP协议, Hyper Text Transfer Protocol…

2023独立站能不能做FP?看完这篇你就懂了

现在已经快2023年中了&#xff0c;2023年已经过去了1/3&#xff0c;但还是有人在问特货产品能不能做独立站&#xff0c;还是有不少人在观望。心动不如行动啊朋友们&#xff01;要是想在跨境独立站做出一番事业来&#xff0c;建议现在立马行动起来&#xff0c;趁早在FP独立站领域…

工厂能耗管理系统linux嵌入式边缘网关

随着工业智能化进程的不断推进&#xff0c;能源能耗管理已成为企业经营中一个重要的环节。而在能源能耗管理场景下&#xff0c;边缘计算机发挥了越来越重要的角色。本文将介绍边缘计算机的功能特点、能源能耗使用对接的设备以及应用前景市场容量&#xff0c;并探讨ARM边缘计算机…

Java使用 Scanner连续输入int, String 异常错误输出原因分析

目录 一、Scanner常用语法 1、sc.nextInt()介绍 2、sc.next()介绍 3、sc.nextLine()介绍 4、sc.hasNext()介绍 二、报错案例 1、使用next()来接收带有空格的字符串会输出异常 2、先输入数字再输入字符串的输出异常 一、Scanner常用语法 Scanner sc new Scanner(System.…

STM32物联网实战开发(2)——回调函数

在第一篇博客中提到了全新的程序框架&#xff0c;我们会大量的使用回调函数&#xff0c;其中包括枚举类型、结构体、函数指针的应用。 回调函数&#xff1a;就是一个通过函数指针调用的函数。如果你把函数的地址传递给中间函数的形参&#xff0c;中间函数通过函数指针调用其所…

【VM服务管家】VM4.0软件使用_1.3全局模块类

目录 1.3.1 通讯管理&#xff1a;通讯管理的心跳管理功能的使用方法1.3.2 全局触发&#xff1a;使用全局触发功能执行流程的方法1.3.3 全局变量&#xff1a;全局变量关联流程中具体模块结果的方法1.3.4 全局脚本&#xff1a;方案加载完成信号发给通信设备的方法1.3.5 全局脚本&…