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

Weblogic反序列化远程代码执行漏洞(CVE-2019-2725)分析报告

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

0x01 漏洞描述
4月17日,国家信息安全漏洞共享平台(CNVD)公开了Weblogic反序列化远程代码执行漏洞(CNVD-C-2019-48814)。由于在反序列化处理输入信息的过程中存在缺陷,未经授权的攻击者可以发送精心构造的恶意 HTTP 请求,利用该漏洞获取服务器权限,实现远程代码执行。目前,POC已在野外公开(见参考链接)。官方紧急补丁(CVE-2019-2725)已于4月26日发布,请受影响主机及时修复漏洞。
受影响版本
Oracle WebLogic Server 10.*
Oracle WebLogic Server 12.1.3
影响组件:
bea_wls9_async_response.war
wsat.war
危害等级: 高,攻击者利用此漏洞可执行任意代码。
 
0x02 漏洞分析
根据国家信息安全漏洞共享平台(CNVD)漏洞公告,此漏洞存在于异步通讯服务,可通过访?#20107;?#24452;/_async/AsyncResponseService,判断不安全组件是否开启。wls9_async_response.war包中的类由于使用注解方法调用了Weblogic原生处理Web服务的类,因此会受该漏洞影响:

为更好的理解漏洞成因,通过IDEA对WebLogic服务器远程动态调试(因为需要跟进原生类中的方法,需要在IDEA中指定WebLogic安装目录中的JDK文件夹),在ProcessBuilder类中打下?#31995;悖?#20851;键的调用栈过程如下所示:



调用栈非常深,下面解释一?#24405;?#20010;关键的部分。首先是?#22363;?#33258;HttpServlet的BaseWSServlet类,其中的service方法主要用于处理HTTP请求及其响应,通过HTTP协议发送的请求包封装在HttpServletRequest类的实例化对象var1中:

调用BaseWSServlet中定义的内部类AuthorizedInvoke的run()方法完成传入HTTP对象的权限验证过程:

若校验成功,则进入到SoapProcessor类的process方法中,通过调用HttpServletRequest类实例化对象var1的getMethod()方法获取HTTP请求类型,若为POST方法,则继续处理请求:

HTTP请求发送至SoapProcessor类的handlePost方法中:
private void handlePost(BaseWSServlet var1, HttpServletRequest var2, HttpServletResponse var3) throws IOException {
    assert var1.getPort() != null;
    WsPort var4 = var1.getPort();
    String var5 = var4.getWsdlPort().getBinding().getBindingType();
    HttpServerTransport var6 = new HttpServerTransport(var2, var3);
    WsSkel var7 = (WsSkel)var4.getEndpoint();
    try {
        Connection var8 = ConnectionFactory.instance().createServerConnection(var6, var5);
        var7.invoke(var8, var4);
    } catch (ConnectionException var9) {
        this.sendError(var3, var9, "Failed to create connection");
    } catch (Throwable var10) {
        this.sendError(var3, var10, "Unknown error");
    }
}
为方便后续分析工作进行,在此先简单介绍一下SOAP协议内容及格式:SOAP(中文称之为简单对象访问协议),用于在WEB上交换结构化和固化的信息,是Web Service三要素之一,可以和?#25191;?#30340;许多因特网协议和格式结合使用。下图展示SOAP消息封装的标?#20960;?#24335;:

BaseWSServlet类实例化对象var1封装了基于HTTP协议的SOAP消息:

调用var1对象中定义的getPort()方法解析SOAP消息中的根元素Envelope(可把 XML 文档定义为 SOAP 消息),获取所调用服务的端口信息:

通过var4对象的getWsdlPort().getBinding().getBindingType()方法获取当前SOAP协议规范版本信息:

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

【声明】:黑吧安全网(http://www.rliwo.live)登载此文出于传递更多信息之目的,并不代表本站赞同其观点?#25237;?#20854;真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱[email protected],我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载
        购买彩票权威网址
        手机上怎么买彩票双色球 微信上有人推荐买彩票 能合买彩票的平台 夫妻买彩票狂中30亿 买彩票心态 买彩票就买大乐透开奖结果 哪个平台买彩票安全吗 买彩票有买一个号的吗 怎么看走势图买彩票 如何在电脑上买彩票 美国几岁可以买彩票? 福彩工作人员买彩票 彩客网买彩票 能在微信上买彩票吗 怎么买彩票容易中
        刀塔自走棋手机版阵容 体彩p5综合走势 贵州金游捉鸡麻将 意大利弗罗西诺内是几线城市 麻将13幺 福建体育36选7走势图 fifa手游更新内容 pp电子游戏技巧心得 电竞甜文 中国锁子甲