"/>
声明 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测以及文章作者不为此承担任何责任。 起因 该洞主要是weblogic的coherence.jar存在可以构造反序列化的gadget类,通过T3协议处理后导致漏洞触发,本文主要是学习weblogicT3序列化,并构造利用链的过程。 利用链分析 通过网上公布的poc,得知利用链如下: ![]() poc ![]() 首先查看ReflectionExtractor.extract()方法: ![]() ![]() ![]() 可以看到这里return了一个method.invoke(),进一步构造代码如下。 ![]() ![]() 可以利用该代码直接弹出cmd,ReflectionExtractor() 这个方法设置了method和invoke的方法。poc最开使得代码类似于CommonsCollections1的transform都是做了一个this.method的赋值。 ![]() 但是只有触发extract()方法时,该反射调用的最终方法才会被执行。这里根据payload,进一步跟入,查看LimitFilter类的toString()方法 ![]() 这里可以看到在LimitFilter的toString()方法中之只要满足判断this.m_comparator的值属于ValueExtractor类就能进行对extract()方法的调用。而reflectionExtractor刚好属于ValueExtractor类 构造测试代码 ![]() 这里相当于执行了第一个测试代码的reflectionExtractor.extract(runtime);这里整个invoke反射链就完成了,接下来是如何进行readObject的。 这里可以看到这个BadAttributeValueExpException和CommonsCollections1使用的反序列化方法是一样的。 ![]() BadAttributeValueException的readObject方法 ![]() ![]() 至此整个反序列化完成 ![]() ![]() 使用此条链会出现如下报错是因为Runtime这个类没实现序列化接口。原理已经搞清楚了修改一下poc就可以利用了。 ![]() 修复建议 升级补丁,参考oracle官网发布的补丁https://www.oracle.com/security-alerts/cpujan2020.html 如果不依赖T3协议进行JVM通信,禁用T3协议。 进入WebLogic控制台,在base_domain配置页面中,进入安全选项卡页面,点击筛选器,配置筛选器。在连接筛选器中输入:weblogic.security.net.ConnectionFilterImpl,在连接筛选器规则框中输入 7001 deny t3 t3s 保存生效(需重启) 招聘启事 安恒雷神众测SRC运营(实习生) 简历投递至 strategy@dbappsecurity.com.cn 设计师(实习生) ———————— 【职位描述】 简历投递至 strategy@dbappsecurity.com.cn 安全招聘 工作环境:一座大厦,健身场所,医师,帅哥,美女,高级食堂… 岗位:安全红队武器自动化工程师 简历投递至 strategy@dbappsecurity.com.cn ![]() 专注渗透测试技术 全球最新网络攻击技术 END ![]() 上一篇:2022HW-你们要的技战法模板来了 下一篇:腾讯云数据库TDSQL两大引擎全新升级,分析能力和Oracle兼容能力大幅提升 |
/1
|最近更新|Archiver|手机版|小黑屋|DZ插件网!
( 鄂ICP备20010621号-1 )
知道创宇云防御
您的IP:216.73.216.247(美国),GMT+8, 2026-10-28 00:37 , Processed in 0.048255 second(s), 48 queries , Gzip On, Redis On.
Powered by Discuz! X5.1 Licensed
© 2001-2026 Discuz! Team.