【HTB】Redeemer

介绍

目录会显示在文章右侧。

一、关卡Redeemer

先创建实例:
image

TASK1

image
问题是:机器上打开了哪个TCP端口?
使用nmap命令扫描端口(如果以下命令效果不佳,可以添加 -Pn):

nmap -sS -T4 -p0-65535 10.129.26.40

image
可知开放的端口号为6379/tcp。
此处的答案为:6379

TASK2

image
问题是:在机器上打开的端口上运行哪个服务?
使用命令:

nmap -A -p6379 10.129.26.40

image
可以得知:打开的6379/tcp端口上 运行的服务为redis数据库服务,对应的Redis版本号为5.0.7。
此处的答案为:redis

TASK3

image
问题是:Redis是什么类型的数据库?从下列选项中选择:(i)内存数据库;(ii)传统数据库
Redis数据库是内存数据库,同时也是非关系型数据库。
答案: In-memory Database

TASK4

image
问题是:哪个命令行工具是用来与Redis服务器交互的?
在linux中使用redis-cli命令行工具,来实现与Redis服务器的交互,redis-cli的安装命令为:

sudo apt install redis-cli

使用参数-h加上目标机器IP,就是redis-cli用来连接目标主机的命令,此处没有密码,直接连接即可:

redis-cli -h 10.129.26.40 -p 6379
//该命令中的-h用于指定ip或者主机名
//-p 6379用于指定连接的端口为6379(此处可以不加指定端口,即去掉-p 6379也可以)

成功连接后,使用命令:

info

可获取Redis服务器的信息和统计信息。
image
答案:redis-cli

TASK5

image
问题是:Redis命令行工具使用哪个标志来指定主机名?
由上文可知,此处的答案为:-h

TASK6

image
问题是:连接Redis服务器后,使用哪条命令获取Redis服务器的信息和统计信息?
由上文可知,此处的答案为:info

TASK7

image
问题是:目标机器上使用的Redis服务器的版本是什么?
由上文的扫描结果可知,目标机器使用的Redis服务器的版本是5.0.7。
答案:5.0.7

TASK8

image
问题是:在Redis中哪个命令是用来选择所需的数据库?
在成功连接redis数据库并通过info命令获取数据库信息后,通过查看Keyspace信息模块,可以得知该数据库中有一个数据库名为db0(该数据库索引为0),keys=4,使用命令:

select 0
//select+index(索引号,此处选择0号索引)表示选择索引为0的数据库

image
此处的答案为:select

TASK9

image
问题是:在索引为0的数据库中有多少个键?
由上文可知db0数据库的keys=4,所以索引为0的数据库db0有4个键。
答案:4

TASK10

image
问题是:哪个命令用于获取数据库中的所有键?
由上文可知,使用select 0选择数据库之后,使用命令:

keys  *

可获取该数据库中的所有键。
此处答案为:keys *

SUBMIT FLAG

image
通过TASK10中命令获取数据库的所有键,可以发现有一个键为flag,使用get命令 可查看flag值(tips-使用命令exit退出redis服务器连接):

get flag
//查看redis数据库中flag键的键值

image
提交flag,成功通关!!
image

二、理论补充

Redis也可通过图形化工具管理。
使用phpstudy自带的工具,开启 redis 服务,安装RedisClient客户端管理软件,输入IP与端口号 即可连接:
image

Redis数据库的数据类型

redis 可以创建五种数据类型:
1.string(字符串)

2.list(列表),Redis 列表是简单的字符串列表,按照插入顺序排序

2.set(集合)是 String 类型的无序集合,集合成员是唯一的,不能出现重复数据

4.hash(哈希)是一个 string 类型的 field(字段)和 value(值)的映射表,适合存储对象

5.zset(sorted set:有序集合),和 set 一样也是 string 类型元素的集合,且不允许重复的成员,区别就是每个元素都会关联一个 double 类型的分数(可以重复),redis 正是通过分数来为集合中的成员进行从小到大的排序,即使写入数据的时候 打乱顺序写,刷新后也会重新按排序显示。

Redis数据库的简单使用

redis 默认有16个数据库,编号为0~15。

Redis服务器中每个数据库都由 redisDB 结构表示(默认16个库)。其中,redisDB 结构的 dict 字典保存了数据库中所有的键值对,这个字典被称为键空间(keyspace)。16个数据库,独立在各自的键空间即key space中。

这里的keyspace可以看作是数据库(类似于mysql中的database),通过 info 命令可以查看redis具体信息,从而也可以看到keyspace信息模块,命令的使用效果见TASK8中的示意图;

使用select关键字加上数据库索引号,可以选择数据库;

使用 keys * 命令可以列出所有的键,最后使用 get 命令可以获取键对应的值。
使用实例见上文的使用情况即可。

posted @ 2022-07-31 00:19  Hekeatsll  阅读(701)  评论(0编辑  收藏  举报