Redis
redis 是一个C语言编写的 key-value 存储系统,可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。 Redis服务的默认端口是 6379。
常用命令
- 查看信息:info
- 删除所有数据库内容:flushall
- 刷新数据库:flushdb
- 查看所有键:keys *,使用select num可以查看键值数据
- 设置变量:set aaa “mi1k7ea”
- 查看变量值:get aaa
- 查看备份文件路径:config get dir
- 设置备份文件路径:config set dir dirpath
- 查看备份文件名:config get dbfilename
- 设置备份文件名:config set dbfilename filename
- 保存备份文件:save
漏洞环境搭建
这里搭建漏洞版本的Redis服务,同时配置服务进行全网监听:
# 下载并解压运行make
wget http://download.redis.io/releases/redis-3.2.11.tar.gz
tar zxf redis-3.2.11.tar.gz
cd redis-3.2.11/
make
# 进入src目录中将redis-server和redis-cli复制到/usr/bin目录下,方便命令识别
cd src
cp redis-server /usr/bin/
cp redis-cli /usr/bin/
# 将redis.conf复制到/etc/目录下
cd ..
cp redis.conf /etc/
# 编辑/etc/中的redis配置文件redis.conf
vim /etc/redis.conf
# 注释掉本地绑定,允许除本地外的主机远程访问Redis服务
# #bind 127.0.0.1
# 关闭保护模式,允许远程连接Redis服务
# protected-mode no 公网可连
# 使用/etc/目录下的redis.conf文件中的配置来启动Redis服务
redis-server /etc/redis.conf
链接 redis
redis-cli -h 公网IP或虚拟linux搭建的IP -p 6379
安全配置密码验证
我们可以通过Redis的配置文件设置密码参数,这样客户端连接到Redis服务就需要密码验证,这样可以让你的Redis服务更安全,进而杜绝了未授权访问漏洞。
我们可以通过以下命令查看是否设置了密码验证:
127.0.0.1:6379> CONFIG GET requirepass
1) "requirepass"
2) ""
默认情况下 requirepass 是控的,这就意味着你不用密码就能链接Redis 服务器
可以使用以下命令来修改该参数
127.0.0.1:6379> CONFIG set requirepass "snowy"
OK
127.0.0.1:6379> CONFIG get requirepass
1) "requirepass"
2) "snowy"
这时候 你再 get reuirepass 的时候,他就会提示需要认证,否则无法执行命令:
密码验证 用到AUTH命令,如下:
AHUTH password</