6379 - Pentesting Redis
最后更新于
最后更新于
加入HackenProof Discord服务器,与经验丰富的黑客和赏金猎人交流!
黑客见解 参与深入探讨黑客的刺激和挑战的内容
实时黑客新闻 通过实时新闻和见解及时了解快节奏的黑客世界
最新公告 随时了解最新的赏金任务发布和重要平台更新
加入我们的 Discord,立即与顶尖黑客合作!
根据文档:Redis是一个开源(BSD许可证),用作数据库、缓存和消息代理的内存数据结构存储。
默认情况下,Redis使用基于纯文本的协议,但您必须记住它也可以实现ssl/tls。了解如何在此处使用ssl/tls运行Redis。
默认端口: 6379
一些自动化工具可以帮助获取来自 Redis 实例的信息:
Redis是一种基于文本的协议,您可以直接在套接字中发送命令,返回的值将是可读的。还要记住,Redis可以使用ssl/tls运行(但这非常奇怪)。
在常规的Redis实例中,您可以使用nc
进行连接,或者也可以使用redis-cli
:
您可以尝试的第一个命令是**info
**。它可能返回Redis实例的信息,或者类似以下内容的输出被返回:
在这种情况下,这意味着您需要有效的凭据才能访问Redis实例。
默认情况下,Redis可以在没有凭据的情况下访问。但是,它可以被配置为仅支持密码,或用户名+密码。
可以在_redis.conf文件中使用参数requirepass
设置密码,或者在服务重新启动连接到它并运行config set requirepass p@ss$12E45
临时设置密码。
此外,可以在redis.conf_文件中的参数masteruser
中配置用户名。
如果仅配置了密码,则使用的用户名是“default”。 另外,请注意外部无法找到Redis是仅配置了密码还是用户名+密码。
在这种情况下,您将需要找到有效的凭据才能与Redis进行交互,因此可以尝试暴力破解。 如果找到有效凭据,则需要在与命令建立连接后进行身份验证的会话中进行身份验证:
有效凭据将会得到回复:+OK
如果Redis服务器允许匿名连接或者您已获得有效凭据,您可以使用以下命令启动服务的枚举过程:
请注意,实例的Redis命令可以在_redis.conf_文件中重命名或删除。例如,以下行将删除FLUSHDB命令:
更多关于如何安全配置Redis服务的信息请参考:https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-redis-on-ubuntu-18-04
您也可以使用命令monitor
实时监控执行的Redis命令,或者使用slowlog get 25
获取前25个最慢的查询。
在这里找到更多关于Redis命令的有趣信息:https://lzone.de/cheat-sheet/Redis
在Redis中,数据库是从0开始编号的数字。您可以通过info
命令的输出在“Keyspace”块中找到是否有任何数据库正在使用:
或者您可以使用以下命令获取所有keyspaces(数据库):
在这个例子中,正在使用数据库 0 和 1。数据库 0 包含 4 个键,数据库 1 包含 1 个。默认情况下,Redis 将使用数据库 0。要导出例如数据库 1,您需要执行:
在运行GET <KEY>
时,如果出现-WRONGTYPE Operation against a key holding the wrong kind of value
错误,这是因为该键可能不是字符串或整数,需要使用特殊操作符来显示它。
要了解键的类型,请使用TYPE
命令,以下是列表和哈希键的示例。
使用npm转储数据库 redis-dump 或python redis-utils
加入HackenProof Discord服务器,与经验丰富的黑客和赏金猎人交流!
黑客见解 参与深入探讨黑客行为的刺激和挑战的内容
实时黑客新闻 通过实时新闻和见解及时了解快节奏的黑客世界
最新公告 了解最新的赏金任务发布和重要平台更新
加入我们的 Discord 并开始与顶尖黑客合作!
redis-rogue-server 可以自动在Redis(<=5.0.5)中获取交互式shell或反向shell。
信息来自这里。您必须知道网站文件夹的路径:
如果webshell访问异常,您可以在备份后清空数据库并重试,记得恢复数据库。