一.基础概念
1.组件
-
定义:组件是软件开发中具有特定功能或特性的可重用部件或模块,能独立使用或集成到更大系统。
-
类型
- 前端 UI 组件:像按钮、下拉菜单、导航栏等,负责构建用户界面,提升用户交互体验。例如在电商 APP 中,商品展示页面的图片轮播组件,方便用户浏览商品图片。
- 后端服务组件:承担业务逻辑处理和数据存储等功能,比如用户登录验证组件,用于验证用户输入的账号密码是否正确。
- 安全组件:保障软件系统的安全,如加密组件对用户敏感信息进行加密处理,防止数据泄露。
- 数据处理组件:实现数据的清洗、转换和分析等操作,在大数据分析系统中,数据清洗组件可去除脏数据。
- 作用:组件通过接口或 API 进行交互和集成,有助于构建复杂软件系统,提高开发效率,减少重复开发工作。
2.框架
- 定义:框架是一种软件开发工具或平台,提供一套结构和规范,助力开发人员构建和组织软件应用程序。
- 组成部分:包含通用功能模块、设计模式、工具和规范。例如 MVC(Model - View - Controller)设计模式,将软件分为模型、视图和控制器三部分,各司其职,提高代码的可维护性和可扩展性。
- 作用:开发人员基于框架开发应用程序,无需从头编写所有代码,大大缩短开发周期,同时使软件架构更规范、稳定。
二.Apache Shiro-550漏洞
1.漏洞分析
2.环境搭建
-
新建docker-compose.yml文件,将以下内容复制进去
version: '2' services: web: image: vulhub/shiro:1.2.4 ports: - "8080:8080"
-
然后执行:docker-compose up -d
-
启动后访问: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 的端点默认情况下是开放的,攻击者通过访问这些敏感的管理端点,从而获取关键的应用程序信息或执行某些管理操作。
-
主要功能:
-
- 健康检查(Health Check):提供了一个用于检查应用程序健康状况的端点。通过访问`/actuator/health`端点,可以查看应用程序是否正常运行。它对于实时监控应用程序的健康状态和故障排查非常有用。
- 应用程序信息(Application Information):提供了关于应用程序的一些基本信息,如应用程序名称、版本号、描述等。通过访问`/actuator/info`端点,可以获取这些信息。
- 环境配置信息(Environment Information):提供了应用程序的配置属性信息。通过访问`/actuator/env`端点,可以查看应用程序的配置属性及其值。
- 线程转储(Thread Dump):提供了获取应用程序线程转储的端点,通过访问`/actuator/threaddump`端点,可以查看应用程序线程的当前状态,用于分析线程问题和死锁情况。
- 度量指标(Metrics):提供了关于应用程序性能和资源利用的度量信息。通过访问`/actuator/metrics`端点,可以查看请求统计、内存使用、垃圾回收等指标。
- 管理端点(Management Endpoints):除了上述常用端点外,Actuator还提供了其他一些管理端点,如刷新配置、关闭应用程序等。
-
2.组件发现
-
通过网站图标发现
-
通过python脚本发现 -- SB-Actuator
- 使用命令:python SB-Actuator.py -u ip
3.漏洞利用
A.获得被脱敏数据
-
介绍:访问 env 接口时,SpringBoot actuator 会将一些带有敏感关键词(如 password、secret)的属性名对应的属性值用 * 号替换达到脱敏的效果。
-
GET 请求目标网站的 /env 或 /actuator/env 接口,搜索 ****** 关键词,找到想要获取的被星号* 遮掩的属性值对应的属性名。
-
发送数据包,其中的 security.user.password 替换为实际要获取的属性名,直接发包;明文值结果包含在 response 数据包中的 value 键中。
-
四.ThinkPHP漏洞
ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的开源轻量级PHP框架。很多cms(内容管理系统)就是基于ThinkPHP二次开发的,所以ThinkPHP出问题的话,会影响很多基于ThinkPHP开发的网站。
1.框架发现
A.通过默认页面发现
B.通过网站图标发现
2.漏洞利用
A.漏洞发现
-
使用 Python 脚本 TPscan 发现 -- TPscan:一键ThinkPHP漏洞检测
B.漏洞利用
-
介绍 :使用自动化利用工具一键获取权限 -- LiqunKit综合漏洞利用工具