组件框架漏洞

一.基础概念

1.组件

  1. 定义:组件是软件开发中具有特定功能或特性的可重用部件或模块,能独立使用或集成到更大系统。

  2. 类型

    • 前端 UI 组件:像按钮、下拉菜单、导航栏等,负责构建用户界面,提升用户交互体验。例如在电商 APP 中,商品展示页面的图片轮播组件,方便用户浏览商品图片。
    • 后端服务组件:承担业务逻辑处理和数据存储等功能,比如用户登录验证组件,用于验证用户输入的账号密码是否正确。
    • 安全组件:保障软件系统的安全,如加密组件对用户敏感信息进行加密处理,防止数据泄露。
    • 数据处理组件:实现数据的清洗、转换和分析等操作,在大数据分析系统中,数据清洗组件可去除脏数据。
  1. 作用:组件通过接口或 API 进行交互和集成,有助于构建复杂软件系统,提高开发效率,减少重复开发工作。

2.框架

  1. 定义:框架是一种软件开发工具或平台,提供一套结构和规范,助力开发人员构建和组织软件应用程序。
  2. 组成部分:包含通用功能模块、设计模式、工具和规范。例如 MVC(Model - View - Controller)设计模式,将软件分为模型、视图和控制器三部分,各司其职,提高代码的可维护性和可扩展性。
  3. 作用:开发人员基于框架开发应用程序,无需从头编写所有代码,大大缩短开发周期,同时使软件架构更规范、稳定。

二.Apache Shiro-550漏洞

1.漏洞分析

2.环境搭建

  1. 新建docker-compose.yml文件,将以下内容复制进去

    version: '2'
    services:web:image: vulhub/shiro:1.2.4ports:- "8080:8080"
    
  2. 然后执行:docker-compose up -d​

  3. 启动后访问:http://your-ip:port/


3.组件发现

  • 首先需要知道目标是否使用该组件,在访问及登录时抓包,如果响应头 set-cookie​ 中显示 rememberMe=deleteMe​ ,说明使用了 Shiro 组件。


  • 除此之外,还可以自己在请求包中的Cookie处添加 rememberMe=1 然后查看响应头是否有 rememberMe=deleteMe​


  • 还可以使用一些指纹探测工具 -- Finger指纹探测工具

  • 以及Burp Suite插件进行被动扫描 -- ShiroScan

4.漏洞利用

  • 在获取到目标网站使用了Shiro组件之后,可以再使用其他的工具爆破密钥,例如LiqunKit综合漏洞利用工具,运行该工具需要有java环境。


三.SpringBoot Actuator漏洞

​Spring​ 是 java web​ 开发里非常常见的开发框架,SpringBoot​ 不是 Spring​ 官方的框架模式,而是一个团队在Spring4.0版本上二次开发并开源公布出来的。简而言之,SpringBoot​ 就是一个轻量级,简化配置和开发流程的web整合框架。

​Actuator​ 是 Spring Boot​ 框架中的一个功能模块,它提供了一系列用于监控和管理 SpringBoot​ 应用程序的端点(endpoints​)。这些端点可以通过HTTP、JMX(Java Management Extensions)或 其他一些远程方式访问,用于查看应用程序的各种运行时信息和健康状态。

​SpringBoot Actuator​ 未授权访问漏洞可以使得攻击者可以在不需要进行身份验证的情况下访问一
些敏感的管理端点,从而获取关键的应用程序信息或执行某些管理操作。这种漏洞的存在可能导致严
重的安全问题,如信息泄露、应用程序篡改或拒绝服务攻击。

1.端点信息

  • 介绍:Spring Boot 1.x​ 版本默认内置路由的根路径以 /​ 开始,2.x​ 则统一以 /actuator​ 开始,SpringBoot Actuator​ 的端点默认情况下是开放的,攻击者通过访问这些敏感的管理端点,从而获取关键的应用程序信息或执行某些管理操作。

  • 主要功能:

      1. 健康检查(Health Check):提供了一个用于检查应用程序健康状况的端点。通过访问`/actuator/health`端点,可以查看应用程序是否正常运行。它对于实时监控应用程序的健康状态和故障排查非常有用。
      1. 应用程序信息(Application Information):提供了关于应用程序的一些基本信息,如应用程序名称、版本号、描述等。通过访问`/actuator/info`端点,可以获取这些信息。
      1. 环境配置信息(Environment Information):提供了应用程序的配置属性信息。通过访问`/actuator/env`端点,可以查看应用程序的配置属性及其值。
      1. 线程转储(Thread Dump):提供了获取应用程序线程转储的端点,通过访问`/actuator/threaddump`端点,可以查看应用程序线程的当前状态,用于分析线程问题和死锁情况。
      1. 度量指标(Metrics):提供了关于应用程序性能和资源利用的度量信息。通过访问`/actuator/metrics`端点,可以查看请求统计、内存使用、垃圾回收等指标。
      1. 管理端点(Management Endpoints):除了上述常用端点外,Actuator还提供了其他一些管理端点,如刷新配置、关闭应用程序等。

2.组件发现

  • 通过网站图标发现

  • 通过python脚本发现 -- SB-Actuator

    • 使用命令:python SB-Actuator.py -u ip​

3.漏洞利用

A.获得被脱敏数据
  • 介绍:访问 env 接口时,SpringBoot actuator 会将一些带有敏感关键词(如 password、secret)的属性名对应的属性值用 * 号替换达到脱敏的效果。

    1. ​GET​ 请求目标网站的 /env​ 或 /actuator/env​ 接口,搜索 ******​ 关键词,找到想要获取的被星号*​ 遮掩的属性值对应的属性名。


    2. 发送数据包,其中的 security.user.password​ 替换为实际要获取的属性名,直接发包;明文值结果包含在 response​ 数据包中的 value​ 键中。

四.ThinkPHP漏洞

ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的开源轻量级PHP框架。很多cms(内容管理系统)就是基于ThinkPHP二次开发的,所以ThinkPHP出问题的话,会影响很多基于ThinkPHP开发的网站。

1.框架发现

A.通过默认页面发现
B.通过网站图标发现

2.漏洞利用

A.漏洞发现
  • 使用 Python​ 脚本 TPscan​ 发现 -- TPscan:一键ThinkPHP漏洞检测

  •  
B.漏洞利用
  • 介绍:使用自动化利用工具一键获取权限 -- LiqunKit综合漏洞利用工具

    • ​​

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++图论】1761. 一个图中连通三元组的最小度数|2005

本文涉及知识点 C图论 LeetCode1761. 一个图中连通三元组的最小度数 给你一个无向图,整数 n 表示图中节点的数目,edges 数组表示图中的边,其中 edges[i] [ui, vi] ,表示 ui 和 vi 之间有一条无向边。 一个 连通三元组 指的是 …

C语言编译过程全面解析

今天是2025年1月26日,农历腊月二十七,一个距离新春佳节仅一步之遥的日子。城市的喧嚣中,年味已悄然弥漫——能在这个时候坚持上班的人,真可称为“牛人”了吧,哈哈。。。。 此刻,我在重新审视那些曾被遗忘的…

【橘子Kibana】Kibana的分析能力Analytics简易分析

一、kibana是啥,能干嘛 我们经常会用es来实现一些关于检索,关于分析的业务。但是es本身并没有UI,我们只能通过调用api来完成一些能力。而kibana就是他的一个外置UI,你完全可以这么理解。 当我们进入kibana的主页的时候你可以看到这样的布局。…

生信软件管家——conda vs pip

pip vs conda: 安装过python包的人自然两种管理软件都用过, Pip install和Conda install在Python环境中用于安装第三方库和软件包,但它们在多个方面存在显著的区别 总的来说: pip是包管理软件,conda既是包管理软件&…

代码随想录——二叉树(二)

文章目录 前言二叉树最大深度二叉树的最小深度翻转二叉树对称二叉树完全二叉树的节点个数平衡二叉树二叉树的所有路径左叶子之和找左下角的值路径总和从中序与后序序列构造二叉树最大二叉树合并二叉树二叉搜索树中的搜索验证二叉搜索树二叉搜索树的最小绝对差二叉树中的众数二叉…

深入剖析 Adam 优化器:原理、优势与应用

在深度学习领域,优化器的选择对模型的训练效率和性能起着决定性作用。Adam优化器作为一种自适应优化算法,凭借其根据历史梯度信息动态调整学习率的特性,备受研究者和工程师的青睐。它巧妙融合了RMSProp和Momentum两种优化算法的理念&#xff…

Mybatis入门

Mybatis入门 一、mybatis的快速入门 1、创建springboot项目 直接选择必须的依赖:MyBatis Framework和MySQL Driver在项目下创建pojo包,用来存放数据库表对应的实体类 2、配置连接信息 在springboot项目的配置文件中application.properties写入一下信…

消息队列篇--通信协议篇--MQTT(通配式主题,消息服务质量Qos,EMQX的Broker,MqttClient示例,MQTT报文等)

MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息协议。它基于发布/订阅模式,专为低带宽、高延迟或不可靠网络设计。它主要用于物联网(IoT)设备之间的通信,但也广泛应用于其他需要高效消息传递…

dmfldr实战

dmfldr实战 本文使用达梦的快速装载工具,对测试表进行数据导入导出。 新建测试表 create table “BENCHMARK”.“TEST_FLDR” ( “uid” INTEGER identity(1, 1) not null , “name” VARCHAR(24), “begin_date” TIMESTAMP(0), “amount” DECIMAL(6, 2), prim…

基于OSAL的嵌入式裸机事件驱动框架——消息队列osal_msg

参考B站up主【架构分析】嵌入式祼机事件驱动框架 感谢大佬分享 消息队列 消息分为hdr和bdy,把消息的头dhr和内容bdy做了一个分离的设计 dhr包括指向下一个消息的指针next,len在创建消息的时候使用,dest_id即目标任务,将消息和任务…

关于MySQL InnoDB存储引擎的一些认识

文章目录 一、存储引擎1.MySQL中执行一条SQL语句的过程是怎样的?1.1 MySQL的存储引擎有哪些?1.2 MyIsam和InnoDB有什么区别? 2.MySQL表的结构是什么?2.1 行结构是什么样呢?2.1.1 NULL列表?2.1.2 char和varc…

单相可控整流电路——单相桥式全控整流电路

以下是关于单相桥式整流电路的介绍: 电路构成(带阻性负载的工作情况) - 二极管:是电路0的核心元件,通常采用四个同型号或根据需求选择不同型号的二极管,如1N4001、1N4007等,如图Vt1和Vt4是一对…

Linux(Centos、Ubuntu) 系统安装jenkins服务

该文章手把手演示在Linux系统下如何安装jenkins服务、并自定义jenkins数据文件位置、以及jenkins如何设置国内镜像源加速,解决插件下载失败问题 安装方式:war包安装 阿里云提供的war下载源地址:https://mirrors.aliyun.com/jenkins/war/?s…

力扣算法题——11.盛最多水的容器

目录 💕1.题目 💕2.解析思路 本题思路总览 借助双指针探索规律 从规律到代码实现的转化 双指针的具体实现 代码整体流程 💕3.代码实现 💕4.完结 二十七步也能走完逆流河吗 💕1.题目 💕2.解析思路…

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】 1.3 广播机制:维度自动扩展的黑魔法

1.3 《广播机制:维度自动扩展的黑魔法》 前言 NumPy 的广播机制是 Python 科学计算中最强大的工具之一,它允许不同形状的数组进行运算,而无需显式地扩展数组的维度。这一机制在实际编程中非常有用,但初学者往往对其感到困惑。在…

Semantic Kernel - Kernel理解

目录 一、关于Kernel 二、案例实战 三、运行截图 一、关于Kernel 微软的 Semantic Kernel 项目中,Semantic Kernel 是一个工具框架,旨在使得开发人员能够更容易地将大语言模型(如GPT)集成到不同的应用中。它通过提供一组接口、任务模板和集成模块,使开发者能够轻松地设计…

【MySQL】--- 复合查询 内外连接

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏: MySQL 🏠 基本查询回顾 假设有以下表结构: 查询工资高于500或岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为…

Qt Designer and Python: Build Your GUI

1.install pyside6 2.pyside6-designer.exe 发送到桌面快捷方式 在Python安装的所在 Scripts 文件夹下找到此文件。如C:\Program Files\Python312\Scripts 3. 打开pyside6-designer 设计UI 4.保存为simple.ui 文件,再转成py文件 用代码执行 pyside6-uic.exe simpl…

openlayer getLayerById 根据id获取layer图层

背景: 在项目中使用getLayerById获取图层,这个getLayerById()方法不是openlayer官方文档自带的,而是自己封装的一个方法,这个封装的方法的思路是:遍历所有的layer,根据唯一标识【可能是id,也可能…

Qt 控件与布局管理

1. Qt 控件的父子继承关系 在 Qt 中,继承自 QWidget 的类,通常会在构造函数中接收一个 parent 参数。 这个参数用于指定当前空间的父控件,从而建立控件间的父子关系。 当一个控件被设置为另一控件的子控件时,它会自动成为该父控…