当前位置: 首页 > news >正文

常见中间件漏洞复现之【Jboss】!

Jboss介绍

            JBoss是⼀个基于J2EE的开发源代码的应⽤服务器。JBoss代码遵循LGPL许可,可以在任何商业应⽤中免费使⽤。JBoss是⼀个管理EJB的容器和服务器,⽀持EJB1.1、EJB 2.0和EJB3的规范。但JBoss核⼼服务不包括⽀持servlet/JSP的WEB容器,⼀般与Tomcat或Jetty绑定使⽤。在J2EE应⽤服务器领域,JBoss是发展最为迅速应⽤服务器。由于JBoss遵循商业友好的LGPL授权分发,并且由开源社区开发,这使得JBoss⼴为流⾏。
------------------------

CVE-2015-7501

          Jboss JMXInvokerServlet 反序列化漏洞

---------------------

漏洞介绍

         这是经典的JBoss反序列化漏洞,JBoss在/invoker/JMXInvokerServlet请求中读取了⽤户传⼊的对象,然后我们利⽤Apache Commons Collections中的 Gadget 执⾏任意代码
-----------------------

影响范围

JBoss Enterprise Application Platform 6.4.4,5.2.0,4.3.0_CP10
JBoss AS (Wildly) 6 and earlier
JBoss A-MQ 6.2.0
JBoss Fuse 6.2.0
JBoss SOA Platform (SOA-P) 5.3.1
JBoss Data Grid (JDG) 6.5.0
JBoss BRMS (BRMS) 6.1.0
JBoss BPMS (BPMS) 6.1.0
JBoss Data Virtualization (JDV) 6.1.0
JBoss Fuse Service Works (FSW) 6.0.0
JBoss Enterprise Web Server (EWS) 2.1,3.0
----------------------

环境搭建

cd vulhub-master/jboss/JMXInvokerServlet-deserialization
docker-compose up -d
----------------------

漏洞复现

搭建环境打开

.POC,访问地址
http://1.15.136.212:8080/invoker/JMXInvokerServlet
返回如下,说明接口开放,此接口存在反序列化漏洞

访问地址/invoker/JMXInvokerServlet自动下载如下文件 

下载工具

GitHub - frohoff/ysoserial: A proof-of-concept tool for generating payloads that exploit unsafe Java object deserialization.

将反弹shell进行base64编码

打开kali开始监听

 

 ---------------------------

 漏洞修复

          升级版本

----------------------------------

CVE-2017-7504

            JBossMQ JMS 反序列化漏洞
-----------------

漏洞介绍

          JBoss AS 4.x及之前版本中,JbossMQ实现过程的JMS over HTTP Invocation Layer的
HTTPServerILServlet.java⽂件存在反序列化漏洞,远程攻击者可借助特制的序列化数据利⽤该漏洞执行任意代码执行
----------------

影响范围

JBoss 4.x 以及之前的所有版本
----------------

环境搭建

cd vulhub-master/jboss/CVE-2017-7504
docker-compose up -d
----------------

漏洞复现

访问漏洞地址
http://1.15.136.212:8080/jbossmq-httpil/HTTPServerILServlet

使用jexboss.py获取shell 

成功获取

 

-------------------------------------

CVE-2017-12149

              JBoss 5.x/6.x反序列化漏洞

漏洞简述

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

漏洞范围

JBoss 5.x/6.x
------------------

环境搭建

cd vulhub-master/jboss/CVE-2017-12149
docker-compose up -d
-----------------

漏洞复现

访问漏洞页面,看jboss版本
http://1.15.136.212:8080

显示500证明存在漏洞

打开jboss反序列化软件 将网址放入 cmd内输入想执行的代码

 ---------------------

漏洞修复

1.不需要 http-invoker.sar 组件的⽤户可直接删除此组件。
2.添加如下代码⾄ http-invoker.sar 下 web.xml 的 security-constraint 标签中,对 http invoker 组件
进行访问控制:
3.升级新版本。
-----------------------------------

Administration Console弱口令

漏洞描述

              Administration Console管理⻚⾯存在弱⼝令,`admin:admin`,登陆后台上传war包 , getshell
---------------------

影响版本

全版本
--------------------

环境搭建

因为这里用的环境是CVE-2017-12149的靶机
cd vulhub-master/jboss/CVE-2017-12149
docker-compose up -d
-------------------

密码文件

/jboss-6.1.0.Final/server/default/conf/props/jmx-console-users.properties
账户密码:admin:vulhub
-------------------

漏洞复现

     搭建好环境 进入

登录后台
admin vulhub

点击上传 上传一个木马文件

上传成功 

访问jsp文件并用哥斯拉进行连接测试

-----------------------------------

低版本JMX Console未授权

                    低版本JMX Console未授权访问Getshell

漏洞描述

              此漏洞主要是由于JBoss中/jmx-console/HtmlAdaptor路径对外开放,并且没有任何身份验证机制,导致攻击者可以进⼊到 jmx控制台,并在其中执⾏任何功能。
------------------

影响范围

Jboss4.x以下
------------------

环境搭建

cd vulhub-master/jboss/CVE-2017-7504
docker-compose up -d
-------------------

漏洞复现

访问
http://1.15.136.212:8080/jmx-console/

点击左侧的deployment  

在右边的输入框内输入下载的war地址然后点击invoke 

提示成功证明上传成功 

访问上传的war内的jsp用哥斯拉进行测试连接 

 

-----------------------------------------

⾼版本JMX Console未授权

漏洞描述

          JMX Console默认存在未授权访问,直接点击JBoss主⻚中的 JMX Console 链接进⼊JMX Console页面, 通过部署war包 , getshell
------------------------

影响版本

Jboss6.x以下
------------------------

环境搭建

cd vulhub-master/jboss/CVE-2017-12149
docker-compose up -d
------------------------

漏洞复现

http://1.15.136.212:8080/jmx-console/
因为使用环境不存在该漏洞所以需要输⼊账户密码:admin admin

本地搭建部署点 

       进⼊service=MainDeployer⻚⾯之后,找到methodIndex为17或19的deploy 填写远程war包地址进⾏远程部署 

用冰蝎生成jsp木马—>压缩到zip中—>改后缀名为.war 

 

 连接Webshell......

----------------------------

实战挖洞

FOFA语句
title=
"Welcome to JBoss AS" && country!="CN"

相关文章:

常见中间件漏洞复现之【Jboss】!

Jboss介绍 JBoss是⼀个基于J2EE的开发源代码的应⽤服务器。JBoss代码遵循LGPL许可,可以在任何商业应⽤中免费使⽤。JBoss是⼀个管理EJB的容器和服务器,⽀持EJB1.1、EJB 2.0和EJB3的规范。但JBoss核⼼服务不包括⽀持servlet/JSP的WEB容器,⼀般…...

Java常用中间件(后续更新)

常用Java中间件总结 目录 引言什么是中间件常见的Java中间件 1. 消息队列中间件 1.1 RabbitMQ1.2 Apache Kafka 2. 数据库中间件 2.1 MySQL Proxy2.2 Hibernate 3. 服务治理中间件 3.1 Spring Cloud3.2 Dubbo 4. 缓存中间件 4.1 Redis4.2 Ehcache 总结 引言 在现代软件开发…...

网站或者网页Cookie 启用说明

背景说明 有时候登录网站的时候,某些网站的主页会弹出‘Cookie启用’的提示,比较好奇,于是就特别去查询相关资料研究了一下,以下是一个网页demo提示: 说明 Cookie 是一种在 Web 开发中广泛使用的机制&#xf…...

Java 抽象知识笔记总结(油管)

Java系列文章目录 Java Optional 容器笔记总结 文章目录 Java系列文章目录一、前言二、学习内容:三、问题描述四、解决方案:4.1 抽象类的使用4.2 抽象类与接口的区别4.2.1 接口复习4.2.2 具体区别4.2.3 使用场景4.2.3.1 抽象类使用场景4.2.3.2 接口使用…...

鲜花销售小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,农户管理,产品分类管理,农产品管理,咨询信息管理,咨询回复管理,系统管理 微信端账号功能包括:系统首页&…...

Golang | Leetcode Golang题解之第324题摆动排序II

题目&#xff1a; 题解&#xff1a; func wiggleSort(nums []int) {n : len(nums)x : (n 1) / 2target : quickSelect(nums, x-1)transAddress : func(i int) int { return (2*n - 2*i - 1) % (n | 1) }for k, i, j : 0, 0, n-1; k < j; k {tk : transAddress(k)if nums[t…...

32、Python之面向对象:对象的表示,再论Python是dict包括语法糖

引言 在前面介绍Python容器的时候&#xff0c;我们曾经用过这种夸张的表述&#xff0c;“Python就是包裹在一堆语法糖中的字典”。虽然夸张&#xff0c;其实更多的是为了突出Python中dict的强大之处。今天这篇文章&#xff0c;打算看下Python中类对象、实例对象的表示及内存管理…...

高级java每日一道面试题-2024年8月07日-网络篇-你对TCP的三次握手了解多少?

如果有遗漏,评论区告诉我进行补充 面试官: 你对TCP的三次握手了解多少? 我回答: TCP&#xff08;Transmission Control Protocol&#xff09;的三次握手是TCP建立连接的过程&#xff0c;它是TCP/IP协议族中一个关键的概念。三次握手确保了双方之间的连接是双向的&#xff0…...

vite.config.ts中proxy的rewrite理解

服务器配置都是在开发情况下适用&#xff01;&#xff01; // 服务器配置 server: {//允许IP访问host: "0.0.0.0",//应用端口&#xff08;默认&#xff1a;3000&#xff09;port: Number(env.VITE_APP_PORT),// 运行是否自动打开浏览器open: true,// 代理配置proxy:…...

大数据环境下用户数据隐私安全防护系统的设计与实现(论文+源码)_kaic

摘 要 现如今互联网已在世界范围内广泛的应用和发展&#xff0c;特别是移动互联网Web 技术快速发展&#xff0c;然而最近几年经常发生互联网用户信息泄露及财产损失问题&#xff0c;网络安全漏洞严重威胁Web应用程序安全及互联网用户的网络使用安全&#xff0c;因此现急需一…...

基于springboot+vue+uniapp的“口腔助手”小程序

开发语言&#xff1a;Java框架&#xff1a;springbootuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#…...

算法刷题之链表

// 单链表 struct ListNode {int val; // 节点上存储的元素ListNode *next; // 指向下一个节点的指针ListNode(int x) : val(x), next(NULL) {} // 节点的构造函数 };ListNode* head new ListNode(5); 重要方法&#xff1a;虚拟头节点 个人方法&#xff1a;指针转为数组…...

C# 设计模式之适配器模式

总目录 前言 在实际的开发过程中&#xff0c;由于需求的变化和扩展&#xff0c;我们的代码也需要做相应的扩展。想象这样一个场景&#xff0c;原项目中接口返回的数据是XML格式的数据&#xff0c;但现在来了一个新客户&#xff0c;它期望接口返回的数据类型为json格式的。想要…...

BFS实现迷宫最短路径

结合队列的知识利用 广度优先遍历&#xff0c;通过对能走的路径的记录以及对走过路径的标记&#xff0c;进行多条路搜查 一、理论基础 如下图的迷宫&#xff1a; 选取所走方向&#xff08;针对某一个位置&#xff09;下&#xff0c;右&#xff0c;上&#xff0c;左&#xff0…...

Linux IPC解析:匿名命名管道与共享内存

目录 一.IPC机制介绍二.匿名与命名管道1.匿名管道2.命名管道3.日志 三.共享内存三.System V 标准1.System V简介2.IPC在内核的数据结构设计3.信号量 一.IPC机制介绍 IPC&#xff08;Inter-Process Communication&#xff0c;进程间通信&#xff09;是计算机系统中不同进程之间交…...

Codeforces Round 964 (Div. 4) A~G

封面原图 画师ideolo A - AB Again? 题意 给你一个两位数&#xff0c;把他的个位和十位加起来 代码 #include <bits/stdc.h> using namespace std; typedef long long ll; typedef double db; typedef pair<int,int> pii; typedef pair<ll,ll> pll;voi…...

单体应用提高性能和处理高并发-使用缓存

要在单体应用中实现高并发&#xff0c;并利用缓存技术来提高性能&#xff0c;需要深入了解缓存的应用场景、选择合适的缓存工具&#xff0c;以及在具体代码中实现缓存策略。以下是详细说明如何在单体应用中使用缓存来处理高并发的内容&#xff0c;包括常见的缓存框架和实际的代…...

ollama教程——使用LangChain调用Ollama接口实现ReAct

ollama入门系列教程简介与目录 相关文章: Ollama教程——入门:开启本地大型语言模型开发之旅Ollama教程——模型:如何将模型高效导入到Ollama框架Ollama教程——兼容OpenAI API:高效利用兼容OpenAI的API进行AI项目开发Ollama教程——使用LangChain:Ollama与LangChain的强强…...

【Bug分析】Keil报错:error: #18:expected a “)“问题解决

【Bug分析】Keil报错&#xff1a;error: #18:expected a “&#xff09;”问题解决 前言bug查找bug解决方法小结 前言 keil编译时出现一个问题&#xff0c;缺少一个右括号。然后仔细查看代码&#xff0c;并没有括号缺失。 如下&#xff0c;代码括号正常。 bug查找 站内文章…...

MAC上设置快捷打开终端以及如何运用剪切快捷键

在Mac上设置一个快捷键&#xff0c;在当前文件夹中打开终端&#xff0c;你可以使用Automator创建一个服务&#xff0c;然后将其分配给一个快捷键。以下是步骤&#xff1a; 1. 创建Automator服务 打开 Automator&#xff08;你可以在应用程序文件夹中找到它&#xff0c;或使用…...

生成xcframework

打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式&#xff0c;可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能&#xff0c;本节首先介绍如何通过 Docker 快速体验 TDengine&#xff0c;然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker&#xff0c;请使用 安装包的方式快…...

【第二十一章 SDIO接口(SDIO)】

第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法&#xff0c;当前调用一个医疗行业的AI识别算法后返回…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...