渗透测试漏洞原理之---【组件安全】
文章目录
- 1、组件安全概述
- 1.1、常见组件
- 1.1.1、操作系统
- 1.1.2、Web容器
- 1.1.3、中间件
- 1.1.4、数据库
- 1.1.5、开发框架
- 1.1.6、OA系统
- 1.1.7、其他组件
- 1.2、漏洞复现
- 1.2.1 漏洞复现模板
- 1.2.3、漏洞名称参考
- 1.2.4、漏洞库
- 2、Apache
- 2.1、Apache HTTPD
- 2.2、Apache Shiro
- 2.3、Apache Tomcat
- 3、Nginx
- 3.1、Nginx解析漏洞
- 3.2、Nginx配置缺陷
- 4、IIS
- 4.1、IIS 6.0
- 4.2、IIS 7.0/7.5
1、组件安全概述
A9:2017-Using Components with Known Vulnerabilities
A06:2021 – Vulnerable and Outdated Components
组件(例如:库、框架和其他软件模块)拥有和应用程序相同的权限。如果应用程序中含有已知漏洞的组件被攻击者利用,可能会造成严重的数据 丢失或服务器接管。同时,使用含有已知漏洞的组件的应用程序和API 可能会破坏应用程序防御、造成各种攻击并产生严重影响
1.1、常见组件
1.1.1、操作系统
Windows
Linux
Mac OS X
...
1.1.2、Web容器
Apache HTTPD
Nginx
IIS
Tomcat
uwsgi
...
1.1.3、中间件
编程语言就是中间件
PHP
Java
ASP.NET(ASPX)
Python
Perl
JavaScript
Go
...
1.1.4、数据库
关系型数据库 非关系型数据库MySQL Redis
Orcale MongoDB
SQL Server ...
Access
...
1.1.5、开发框架
| JAVA | PHP | Python | JS |
|---|---|---|---|
| struts2 spring springboot JBoss Weblogic … | wordpress | wp drupal joomal thinkphp | tp dedecms |织梦 discuz |dz metinfo … | Flask Django | Vue.js … |
1.1.6、OA系统
| OA系统 |
|---|
| 通达OA 泛微e-office 致远OA |
1.1.7、其他组件
phpstudy宝塔xampp
1.2、漏洞复现
1.2.1 漏洞复现模板
编写渗透测试报告的主要内容:
* 组件_版本_漏洞名称* 漏洞描述 * 漏洞评级* 影响版本 * 漏洞复现 * 漏洞扫描 * 漏洞验证 * 深度利用 * 命令执行 * GetShell* EXP 编写 * 漏洞挖掘 * 指纹信息 * 修复建议
1.2.3、漏洞名称参考
- pocsuite3 漏洞命名规范
- seebug类型规范
1.2.4、漏洞库
- exploit-db
- seebug漏洞库
2、Apache
2.1、Apache HTTPD
| 漏洞名称 | 原理 | 案例 |
|---|---|---|
| 未知后缀名解析漏洞 | yjh.php.jaychou | upload-labs/Pass-07 |
| 多后缀名解析漏洞 | yjh.php.png | Vulhub/httpd/apache_parsing_vulnerability |
| 换行解析漏洞 CVE-2017-15715 | yjh.php%0a | Vuluhb/httpd/CVE-2017-15715 |
2.2、Apache Shiro
| 漏洞名称 | 原理 | 案例 |
|---|---|---|
| CVE-2016-4437 | 反序列化 | Vulhub/shiro/CVE-2016-4437 挖矿木马4SHMiner ShiroExploit |
2.3、Apache Tomcat
| 漏洞名称 | 原理 | 案例 |
|---|---|---|
| 弱口令 | 配置错误 | Vulhub/tomcat/tomcat8 |
| 本地文件包含 CVE-2020-1938 | – | Vulhub/tomcat/CVE-2020-1938 CNVD-2020-10487-Tomcat-Ajp-lfi |
3、Nginx
3.1、Nginx解析漏洞
特定情况下,可以将图片解析成PHP,为图片木马提供出路
| 漏洞名称 | 原理 | 案例 |
|---|---|---|
| 空字节漏洞 | yjh.png%00.php | nginx_0.7.65 解析漏洞复现 |
| 文件路径解析漏洞 CVE-2013-4547 | yjh.png[0x20][0x00].php | Vulhub/nginx/CVE-2013-4547 |
| (背锅) 解析漏洞 | cgi.fix_path=1 yjh.png/.php | Vulhub/nginx/nginx_parsing_vulnerability |
3.2、Nginx配置缺陷
| 漏洞名称 | 原理 | 案例 |
|---|---|---|
| Nginx 目录遍历漏洞 | location /files { alias /home/; } | Vulhub/nginx/insecure-configuration |
4、IIS
4.1、IIS 6.0
| 漏洞名称 | 原理 | 案例 |
|---|---|---|
| 文件路径截断解析漏洞 | time.asp;.jpg | FCKeditor 2.6.6 ASP GetShell |
| 目录名解析错误 | /1.asp/time.rar |
4.2、IIS 7.0/7.5
IIS 能够解析PHP 脚本
| 漏洞名称 | 原理 | 案例 |
|---|---|---|
| IIS 7.0/7.5 解析漏洞 | cgi.fix_path=1 jaychou.png/.php |
相关文章:
渗透测试漏洞原理之---【组件安全】
文章目录 1、组件安全概述1.1、常见组件1.1.1、操作系统1.1.2、Web容器1.1.3、中间件1.1.4、数据库1.1.5、开发框架1.1.6、OA系统1.1.7、其他组件 1.2、漏洞复现1.2.1 漏洞复现模板1.2.3、漏洞名称参考1.2.4、漏洞库 2、Apache2.1、Apache HTTPD2.2、Apache Shiro2.3、Apache T…...
uni-app集成mui-player
uni-app集成mui-player,仅说明集成方法,mui-player 相关配置请查看其官网 准备 在uniapp项目根目录新建hybrid目录在hybrid目录下新建html目录在html目录中新建css、js、img等目录,用于存放相关文件 集成 静态webview 在pages目录下新建v…...
力扣(LeetCode)算法_C++—— 两个数组的交集
给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 示例 1: 输入:nums1 [1,2,2,1], nums2 [2,2] 输出:[2] 示例 2: 输入:nums1 …...
异步编程 - 12 异步、基于事件驱动的网络编程框架 Netty
文章目录 Netty概述Netty中的一些概念Netty的线程模型Netty Server端Netty Netty 端 TCP半包与粘包问题基于Netty与CompletableFuture实现RPC异步调用 Netty概述 Netty是一个异步、基于事件驱动的网络应用程序框架,其对Java NIO进行了封装,大大简化了TC…...
STM32 Nucleo-144开发板开箱bring-up
文章目录 1. 开篇2. 开发环境搭建2.1 下载官方例程2.2 ST-Link安装 3. STM32F446ZE demo工程3.1 STM32F446ZE简介3.2 跑个demo试一试 1. 开篇 最近做项目,用到STM32F446ZET6这款MCU,为了赶进度,前期软件需要提前开发,于是在某宝买…...
计算机毕业设计 基于SSM的问卷调查管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解
博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…...
基于SpringBoot的无忌在线考试系统(源码+讲解+调试运行)做毕设课设均可
技术栈 前后端分离 前端使用: Vue Element Plus 后端使用: SpringBoot Mysql8.0 Mybatis-Plus 功能 分为 管理员端 和 老师端 和 学生端 管理员端 登陆页 科目管理 查看所有科目 ,增加 ,修改 ,删除科目 , 模糊搜索课程 考试管理 查看所有考试 ,增加 ,修改 ,删除考试 题库…...
无涯教程-JavaScript - EOMONTH函数
描述 EOMONTH函数返回该月最后一天的序列号,该序列号是start_date之前或之后的月份数。 语法 EOMONTH (start_date, months)争论 Argument描述Required/OptionalStart_date 代表开始日期的日期。 应该使用DATE函数或其他公式或函数的输出输入日期。 如果将日期作为文本输入…...
【LeetCode-面试经典150题-day21】
目录 120.三角形最小路径和 64.最小路径和 63.不同路径Ⅱ 5.最长回文子串 120.三角形最小路径和 题意: 给定一个三角形 triangle ,找出自顶向下的最小路径和。 每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标…...
算法刷题记录-双指针/滑动窗口(LeetCode)
809. Expressive Words 思路 根据题目描述,我们可以知道,如果要将某个单词定义为可扩张(stretchy),需要满足如下两个条件: 所以,我们在实现的时候,可以通过两个指针p1和p2&#x…...
Python基础tuple元组定义与函数
元组的特点 有序:元组中的元素是按照顺序排列的。不可更改:一旦创建,元组中的元素不可被修改、增加或删除。元素类型多样化:元组可以包含任何数据类型的元素。 定义一个非空元组 name_tuple (a, b, c, d)定义一个空元组 name…...
【linux命令讲解大全】088.深入理解 shell 脚本中的 trap 命令
文章目录 trap概要主要用途选项参数返回值关于信号例子 从零学 python trap 捕捉信号和其他事件并执行命令。 概要 trap [-lp] [[arg] signal_spec ...]主要用途 用于指定在接收到信号后将要采取的动作。 脚本程序被中断时执行清理工作。 选项 -l:打印信号名称…...
bean的管理-bean的获取
获取bean 默认情况下,在Spring项目启动时,会把bean都创建好(但是还会受到作用域及延迟初始化的影响)放在IOC容器中,如果想主动获取这些bean,可以通过如下方式 根据name获取bean Object getBean(…...
如何快速清理已经上传到Git仓库的.DS_Store文件
很久以前,发过这样一篇文章《Git全局忽略MacOS系统下的.DS_Store文件》,主要是针对MacOS用户,如何方便的在自己机器中免疫所有.DS_Store文件的误提交。如果有这个需求,且还没有搞过的读者可以通过上面这篇文章学习。 今天想要分享…...
美的的笔试
第一题 有两只猫咪和n条不同类型的鱼,每条鱼都只能被其中一只猫咪吃掉。 下标为i处的鱼被吃掉的得分为: 如果第一只猫咪吃掉,则得分为reward1[i]。如果第二只猫咪吃掉,则得分为reward[i]。 给你一个正整数数组reward1 ,一个正整数数组reward2࿰…...
Android 1.2 开发环境搭建
目录 1.2 开发环境搭建 1.JDK安装与配置 2.开发工具二选一 3.相关术语的解析 4.ADB命令行的一些指令 5.APP程序打包与安装的流程: 6.APP的安装过程: 7.本节小结 1.2 开发环境搭建 现在主流的Android开发环境有: ①Eclipse ADT SDK ②Android Stu…...
vue 页面加水印
首先创建一个waterMark.js文件,当然文件命名可自定义, use strictconst watermark {}/**** param {要设置的水印的内容} str* param {需要设置水印的容器} container*/ const setWatermark (str, container) > {const id 1.23452384164.123412415…...
Android ImageView详解
scaleType属性详解 在 Android 中,ImageView 控件的 scaleType 属性用于指定图像在 ImageView 内部的缩放和对齐方式。scaleType 属性可以帮助你控制图像的显示方式,以适应 ImageView 的尺寸或实现其他特定的显示效果。以下是常见的 scaleType 属性值和…...
ElasticSearch第二讲:ES详解 - ElasticSearch基础概念
ElasticSearch第二讲:ES详解 - ElasticSearch基础概念 在学习ElasticSearch之前,先简单了解下ES流行度,使用背景,以及相关概念等。本文是ElasticSearch第二讲,ElasticSearch的基础概念。 文章目录 ElasticSearch第二讲…...
Ajax模拟视频点赞功能
前台 <%--Created by IntelliJ IDEA.User: xxDate: 2023/9/4Time: 10:00To change this template use File | Settings | File Templates. --%> <% page contentType"text/html;charsetUTF-8" language"java" %> <html> <head>&l…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...
Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...
【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...
