手机上怎么买彩票双色球 微信上有人推荐买彩票 能合买彩票的平台 夫妻买彩票狂中30亿 买彩票心态 买彩票就买大乐透开奖结果 哪个平台买彩票安全吗 买彩票有买一个号的吗 怎么看走势图买彩票 如何在电脑上买彩票 美国几岁可以买彩票? 福彩工作人员买彩票 彩客网买彩票 能在微信上买彩票吗 怎么买彩票容易中

WebLogic 多个CVE XXE漏洞分析

来源:本站整理 作者:佚名 时间:2019-04-30 TAG: 我要投稿

Oracle发布了4月份的补丁,详情见链接(https://www.oracle.com/technetwork/security-advisory/cpuapr2019-5072813.html#AppendixFMW)
@xxlegend在《Weblogic CVE-2019-2647等相关XXE漏洞分析》分析了其中的一个XXE漏洞点,并给出了PoC。刚入手java不久,本着学习的目的,自己尝试分析了其他几个点的XXE并构造了PoC。下面的分析我尽量描述自己思考以及PoC构造过程,新手真的会踩很多莫名其妙的坑。感谢在复现与分析过程中为我提供帮助的小伙伴@Badcode,没有他的帮助我可能环境搭起来都会花费一大半时间。
 
补丁分析,找到漏洞点
根据JAVA常见XXE写法与防御方式(参考https://blog.spoock.com/2018/10/23/java-xxe/),通过对比补丁,发现新补丁以下四处进行了setFeature操作:

应该就是对应的四个CVE了,其中[email protected]大佬已经分析过了,这里就不再分析了,下面主要是分析下其他三个点
分析环境
Windows 10
WebLogic 10.3.6.0
Jdk160_29(WebLogic 10.3.6.0?#28304;?#30340;JDK)
 
WsrmServerPayloadContext 漏洞点分析
WsrmServerPayloadContext修复后的代码如下:
package weblogic.wsee.reliability;
import ...
public class WsrmServerPayloadContext extends WsrmPayloadContext {
    public void readExternal(ObjectInput var1) throws IOException, ClassNotFoundException {
        ...
        }
        private EndpointReference readEndpt(ObjectInput var1, int var2) throws IOException, ClassNotFoundException {
            ...
            ByteArrayInputStream var15 = new ByteArrayInputStream(var3);
            try {
                DocumentBuilderFactory var7 = DocumentBuilderFactory.newInstance();
                try {
                    String var8 = "http://xml.org/sax/features/external-general-entities";
                    var7.setFeature(var8, false);
                    var8 = "http://xml.org/sax/features/external-parameter-entities";
                    var7.setFeature(var8, false);
                    var8 = "http://apache.org/xml/features/nonvalidating/load-external-dtd";
                    var7.setFeature(var8, false);
                    var7.setXIncludeAware(false);
                    var7.setExpandEntityReferences(false);
                } catch (Exception var11) {
                    if (verbose) {
                        Verbose.log("Failed to set factory:" + var11);
                    }
                }
           ...
        }
}
可以看到进行了setFeature操作防止xxe攻击,而未打补丁之前是没有进行setFeature操作的
readExternal在反序?#35874;?#23545;象时会被调用,与之对应的writeExternal在序?#35874;?#23545;象时会被调用,看下writeExternal的逻辑:

var1就是this.formENdpt,注意var5.serialize可?#28304;?#20837;三种类型的对象,var1.getEndptElement()返回的是Element对象,先尝试新建一个项目构造一下PoC:
结构如下

[1] [2] [3] [4] [5]  下一页

【声明】:黑吧安全网(http://www.rliwo.live)登载此文出于传递更多信息之目的,并不代表本站赞同其观点?#25237;?#20854;真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱[email protected],我们会在最短的时间内进?#20889;?#29702;。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载
        购买彩票权威网址
        手机上怎么买彩票双色球 微信上有人推荐买彩票 能合买彩票的平台 夫妻买彩票狂中30亿 买彩票心态 买彩票就买大乐透开奖结果 哪个平台买彩票安全吗 买彩票有买一个号的吗 怎么看走势图买彩票 如何在电脑上买彩票 美国几岁可以买彩票? 福彩工作人员买彩票 彩客网买彩票 能在微信上买彩票吗 怎么买彩票容易中
        新剑侠情缘挂机脚本 深圳风采几点开奖 36选7走势图浙江风采 穿越火线下载 马德里竞技守门员球衣 篮球巨星豪华版免费试玩 河南快三近30期走势图 五分快3计划网 2014年3月2日活塞vs火箭 快三开奖结果北京