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

组件安全以及漏洞复现

组件安全

1. 概述

A9:2017-使⽤含有已知漏洞的组件

A06:2021-Vulnerable and Outdated Components

​ 组件(例如:库、框架和其他软件模块)拥有和应用程序相同的权限。如果应用程序中含有已知漏洞的组件被攻击者利用,可能会造成严重的数据丢失或服务器接管。同时,使用含有已知漏洞的组件的应用程序和API 可能会破坏应用程序防御、造成各种攻击并产生严重影响。

1.1 常见组件

1.1.1 操作系统

操作系统
Windows
Linux
Mac OS X

1.1.2 Web 容器

我们简单的认为,只要能够提供Web 服务的应用,就是Web 容器。

Web 容器
Apache HTTPD
Nginx
IIS
Tomcat
uwsgi

1.1.3 中间件

我们简单的认为,编程语言就是中间件。

中间件
PHP
Java
ASP.NET(ASPX)
Python
Perl
JavaScript
Go

1.1.4 数据库

关系型数据库非关系型数据库
MySQL
Orcale
SQL Server
Access
Redis
MongoDB

1.1.5 开发框架

JAVAPHPPythonJS
struts2
spring
springboot
JBoss
Weblogic
wordpress|wp
drupal
joomla
thinkphp|tp
dedecms|织梦
discuz|dz
metinfo
Flask
Django
vue.js

1.1.6 OA 系统

OA 系统
通达OA
泛微e-office
致远OA

可以利用OA利用工具Releases · cseroad/Exp-Tools (github.com)

image-20230907155134911

proxychains git clone https://github.com/LittleBear4/OA-EXPTOOL.git 

将此工具下载,然后cd到工具目录,安装依赖

python3 -m pip install -r requirements.txt

image-20230907162301532

安装依赖后在工具目录下开启工具

python3 scan.py

输入?

image-20230907162512361

1.1.7 其他组件

  • phpStudy

  • 宝塔

  • xampp

1.2 漏洞复现

1.2.1 漏洞复现模板

编写渗透测试报告的主要内容:

* 组件_版本_漏洞名称* 漏洞描述* 漏洞评级* 影响版本* 漏洞复现* 漏洞扫描* 漏洞验证* 深度利用* 命令执行* GetShell* EXP 编写* 漏洞挖掘* 指纹信息* 修复建议

1.2.2 漏洞名称参考

pocsuite3 漏洞命名规范 类似msf的工具

seebug 漏洞类型规范

1.2.3 漏洞库

exploit-db

seebug 漏洞库

2. Apache

2.1 Apache HTTPD

漏洞名称原理案例
未知后缀名解析漏洞yjh.php.ajestupload-labs/Pass-07
多后缀名解析漏洞yjh.php.pngVulhub - httpd 多后缀名解析
换行解析漏洞 CVE-2017-15715yjh.php%0aVulhub - httpd - CVE-2017-15715

Vulhub - Apache 2.4.49 路径穿越

Vulhub - Apache 2.4.50 路径穿越

2.1.1 未知后缀名解析

2.1.1.1 环境搭建

打开部署了upload-labs-env的服务器,将upload-labs-env服务打开

image-20230907163441452

2.1.1.2 过程

使用bp浏览器访问部署了upload-labs-env的服务器的IP,

上传1.php文件,使用bp进行抓包,发送重发器

image-20230907163815349

修改文件类型

image-20230907172407455

修改文件后缀名为png,上传成功,修改为xj依旧还是上传成功,由此可知,php源代码中使用的是黑名单。

image-20230907172522061

修改文件内容为phpinfo()和后缀名改为php.xj,

image-20230907173653460

访问上传的文件,phpinfo执行了,因为在低版本的apache中检测处理文件时,会从前到后找后缀名。找到后缀名后从后往前找,首先找到了xj,apache不认识,又往前找找到了php,然后就会将文件内容读取出来交给php执行

image-20230907173723509

2.1.2 多后缀名解析实例

2.1.2.1 环境搭建

image-20230907114716697

2.1.2.2 过程

访问本机IP,上传文件1.php使用bp抓包

image-20230907135011647

image-20230907135119802

结果显示不支持上传文件格式,修改类型然后点击发送

image-20230907135435459

结果还是不支持文件类型,修改后缀名,上传成功,证明php源代码使用的是白名单

image-20230907135705022

image-20230907135732224

文件上传成功,是因为配置问题,产生不安全配置的问题是AddHandler application/x-http-php .php这个配置的意思为,只要文件名中有.php就会当作php文件执行。访问上传文件,使用蚁剑连接

image-20230907141017967

image-20230907143711024

2.1.3 换行解析漏洞

2.1.3.1 环境搭建

因为使用的是bp的浏览器,8080端口被占用,将环境的端口改为80

image-20230907175025630

启动环境

image-20230907175046696

2.1.3.2 过程

上传1.php文件,使用bp抓包,将数据包发送重发器

image-20230907175329948

image-20230907175419238

查看数据包,有文件名,文件类型,文件内容,并且还给了一个evil.php的文件名,

image-20230907175654331

修改文件类型,将evil.php修改为1.php.然后修改十六进制编码形式,将1.php.的右侧的点改为0a,然后点击上传,上传成功

image-20230907180253439

image-20230907180408488

访问上传文件

image-20230907180900527

漏洞原因:1.php\x0a被按照php后缀进行解析,导致绕过一些服务器的安全策略。

2.1.4 apache 路径穿越漏洞

2.1.4.1 环境搭建

image-20230907191404539

2.1.4.2 过程

使用bp自带浏览器访问ip,抓包

访问

icons/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd

读到了passwd文件

image-20230907192147807

执行命令

cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/bin/bash

image-20230907192919720

漏洞原因:是apache2.4.49本身组件的问题,还可以执行命令,相当于shell;2.4.50依然还有这个漏洞,访问

icons/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/etc/passwd

就能读出passwd

2.2 Apache Shiro

漏洞名称原理案例
CVE-2016-4437反序列化vulhub/shiro/CVE-2016-4437/ 挖 矿木⻢ ShiroExploit

2.3 Apache Tomcat

漏洞名称原理案例
弱口令配置错误vulhub/tomcat/tomcat8/
本地文件包含 CVE-2020-1938vulhub/tomcat/CVE-2020-1938/
工具CNVD-2020-10487-Tomcat-Ajp-lfi

Vulhub - Tomcat-PUT任意写文件漏洞

2.3.1 弱口令

2.3.1.1 环境搭建

image-20230907193909139

2.3.1.2 过程

点击manager app进行登录,tomcat、tomcat

image-20230907194142825

docs是整个web应用的说明书,可以通过web控制台可以对整个tomcat下的web服务做服务管理

将大马war上传

image-20230907195722315

访问上传的war

image-20230907200853705

image-20230907200919492

2.3.2 本地文件包含

2.3.2.1 环境搭建

image-20230907201427656

2.3.2.2 过程

使用tomcat工具CNVD-2020-10487-Tomcat-Ajp-lfi.py扫描

python2 CNVD-2020-10487-Tomcat-Ajp-lfi.py 容器IP -p 8009 -f WEB-INF/web.xml

image-20230907202145125

工具缺点:只能读取ROOT目录下的文件

2.3.3 PUT方法任意写文件漏洞

2.3.3.1 环境搭建

image-20230907203413083

2.3.3.2 过程

使用nuclei扫描漏洞

sudo ./nuclei -u 192.168.16.176 

image-20230907204151004

访问扫描工具对应漏洞给出链接,读出passwd

image-20230907204259227

image-20230907204354127

3. Nginx

3.1 Nginx 解析漏洞

特定情况下,可以将图片解析成PHP,为图片木马提供出路。

漏洞名称原理案例
空字节漏洞yjh.png%00.phpnginx_0.7.65 解析漏洞复现
文件路径解析漏洞 CVE-2013-4547yjh.png[0x20][0x00].phpvulhub/nginx/CVE-2013-4547/
(背锅) 解析漏洞cgi.fix_path=1 yjh.png/.phpnginx_parsing_vulnerability/

3.1.1 空字节漏洞

3.1.1.1 环境搭建

将压缩包加压至c盘下

image-20230907205032427

在nginx_0.7.65目录下打开命令行

image-20230907205348998

3.1.1.2 过程

访问Nginx

image-20230907205616773

访问info.png,使用bp抓包,发送重发器

image-20230907205845264

该漏洞叫00截断

php是以C语言写的,C语言字符串结束是00。当Nginx找文件时,看到后缀名是php就会交给php执行。当php解释引擎从前往后扫描文件,当扫描到00结束,读到的文件是info.png文件,但是info.png文件以php方式执行的

3.1.2 背锅解析漏洞

3.1.2.1 环境搭建

image-20230907211145545

3.1.2.2 过程

上传1.php文件,使用bp抓包,发送重发器

image-20230907211326208

修改文件类型、后缀名和文件内容

image-20230907211514765

访问上传文件

image-20230907211629496

漏洞产生原因:php的安全选项有关(cgi-fcgi)

3.2 Nginx 配置缺陷

漏洞名称原理案例
Nginx 目录遍历漏洞location /files { alias /home/; }vulhub/nginx/insecure-configuration/

4. IIS

4.1 IIS 6.0

漏洞名称原理案例
文件路径截断解析漏洞time.asp;.jpgFCKeditor 2.6.6 ASP GetShell
目录名解析错误/1.asp/time.rar

4.2 IIS 7.0/7.5

IIS 能够解析PHP 脚本。IIS <----FASTCGI----> PHP

漏洞名称原理案例
IIS 7.0/7.5 解析漏洞cgi.fix_path=1 ajest.png/.php

IIS 解析漏洞现存与IIS 7.0/7.5版本中,即Windows server 2008和Windows7中

4.2.1 环境搭建

image-20230908170907505

image-20230908170948264

image-20230908171810096

以IIS10.0打开php

image-20230908173416919

image-20230908173956153

php解释是由php引擎和php解释器进行的

点击IIS管理器

image-20230908174947098

image-20230908175502016

image-20230908175357547

image-20230908175544095

4.2.2 漏洞

image-20230908175717815

image-20230908175740495

image-20230908175846130

请求限制在7.0/7.5中默认是不勾选的

重现访问png,在png后加上/.php

image-20230908180015764

4.2.3 漏洞原因

image-20230908180112949

相关文章:

组件安全以及漏洞复现

组件安全 1. 概述 A9:2017-使⽤含有已知漏洞的组件 A06:2021-Vulnerable and Outdated Components ​ 组件&#xff08;例如&#xff1a;库、框架和其他软件模块&#xff09;拥有和应用程序相同的权限。如果应用程序中含有已知漏洞的组件被攻击者利用&#xff0c;可能会造成…...

人工智能安全-4-小样本问题

0 提纲 小样本学习问题数据增强基于模型的小样本学习基于算法的小样本学习相关资源1 小样本学习问题 在小样本监督分类中,通常将问题表述为 N-way-K-shot分类, 当K = 1,称为one-shot learning;当K = 0时,成为zero-shot learning(ZSL)。ZSL就要求学习的问题具备充足的先…...

iOS 17中的Safari配置文件改变了游戏规则,那么如何设置呢

Safari在iOS 17中最大的升级是浏览配置文件——能够在一个应用程序中创建单独的选项卡和书签组。这些也可以跟随你的iPad和Mac&#xff0c;但在本指南中&#xff0c;我们将向你展示如何使用运行iOS 17的iPhone。 你可能有点困惑&#xff0c;为什么Safari中没有明显的位置可以添…...

AC自动机小结

AC自动机是一种多模匹配算法。 常见操作 查询一个串的子串 任何一个串的子串都可以表示成他的一个前缀的后缀 他的前缀可以在Trie树上查询 后缀相当于其在fail树上的所有祖先 例1 &#xff1a; HDU4117 接上。首先AC自动机要学会离线。 对于每个点查询祖先复杂度很大。…...

【C++】构造函数分类 ③ ( 调用有参构造函数的方法 | 括号法 | 等号法 )

文章目录 一、在不同的内存中创建类的实例对象1、括号法调用构造函数2、等号法调用构造函数 二、完整代码示例 一、在不同的内存中创建类的实例对象 在上一篇博客 【C】构造函数分类 ② ( 在不同的内存中创建类的实例对象 | 栈内存中创建实例对象 | new 关键字创建对象 ) 中 , …...

uni-app 之 uni.request 网络请求API接口

uni-app 之 uni.request 网络请求API接口 image.png <template><!-- vue2的<template>里必须要有一个盒子&#xff0c;不能有两个&#xff0c;这里的盒子就是 view--><view>--- uni.request 网络请求API接口 ---<view><!-- 免费的测试接口 --…...

代码随想录33|509. 斐波那契数,70. 爬楼梯,746. 使用最小花费爬楼梯, 34. 在排序数组中查找元素的第一个和最后一个位置

509. 斐波那契数 链接地址 class Solution { public:int fib(int n) {if (n < 1) return n;vector<int> dp(n 1);dp[0] 0;dp[1] 1;for (int i 2; i < n 1; i) {dp[i] dp[i - 1] dp[i - 2];}return dp[n];} };70. 爬楼梯 链接地址 class Solution { public…...

什么是Executors框架?

Executors 是 Java 标准库中的一个工具类,位于 java.util.concurrent 包中,用于创建和管理线程池。它提供了一组静态工厂方法,用于快速创建不同类型的线程池。Executors 框架的目标是使线程池的创建和管理更加简单和方便。 以下是一些 Executors 框架的常用工厂方法和线程池…...

【kafka】kafka单节点/集群搭建

概述 本章节将分享不同版本的kafka单节点模式和集群模式搭建。 在kafka2.8版本之前&#xff0c;需要依赖zookeeper服务&#xff0c;而在kafka2.8版本&#xff08;包括&#xff09;之后&#xff0c;可以不在依赖zookeeper服务。本章节将分kafka2.8版本之前的版本和之后的版本分…...

如何进行机器学习

进行机器学习主要包含以下步骤&#xff1a; 获取数据&#xff1a;首先需要获取用于学习的数据&#xff0c;数据的质量和数量都会影响机器学习的效果。如果自己的数据量较少&#xff0c;可以尝试在网上寻找公开数据集进行训练&#xff0c;然后使用自己的数据进行微调。另一种方…...

Vue项目使用axios配置请求拦截和响应拦截以及判断请求超时处理提示

哈喽大家好啊&#xff0c;最近做Vue项目看到axios axios官网&#xff1a;起步 | Axios 中文文档 | Axios 中文网 (axios-http.cn)​​​​​​ 重要点&#xff1a; axios是基于Promise封装的 axios能拦截请求和响应 axios能自动转换成json数据 等等 安装&#xff1a; $ npm i…...

《DevOps实践指南》- 读书笔记(四)

DevOps实践指南 Part 3 第一步 &#xff1a;流动的技术实践11. 应用和实践持续集成11.1 小批量开发与大批量合并11.2 应用基于主干的开发实践11.3 小结 12. 自动化和低风险发布12.1 自动化部署流程12.1.1 应用自动化的自助式部署12.1.2 在部署流水线中集成代码部署 12.2 将部署…...

盲打键盘的正确指法指南

简介 很多打字初学者&#xff0c;并不了解打字的正确指法规范&#xff0c;很容易出现只用两根手指交替按压键盘的“二指禅”情况。虽然这样也能实现打字&#xff0c;但是效率极低。本文将简单介绍盲打键盘的正确指法&#xff0c;以便大家在后续的学习和工作中能够提高工作效率…...

【MySQL】索引 详解

索引 详解 一. 概念二. 作用三. 使用场景四. 操作五. 索引背后的数据结构B-树B树聚簇索引与非聚簇索引 一. 概念 索引是一种特殊的文件&#xff0c;包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引&#xff0c;并指定索引的类型&#xff0c;各类索引有各…...

怎么通过ip地址连接共享打印机

在现代办公环境中&#xff0c;共享打印机已成为一种常见的需求。通过共享打印机&#xff0c;多个用户可以在网络上共享同一台打印机&#xff0c;从而提高工作效率并减少设备成本。下面虎观代理小二二将介绍如何通过IP地址连接共享打印机。 确定打印机的IP地址 首先&#xff0…...

迅为i.MX8mm小尺寸商业级/工业级核心板

尺寸&#xff1a; 50mm*50mm CPU&#xff1a; NXP i.MX8M Mini 主频&#xff1a; 1.8GHz 架构&#xff1a; 四核Cortex-A53&#xff0c;单核Cortex-M4 PMIC&#xff1a; PCA9450A电源管理PCA9450A电源管理NXP全新研制配&#xff0c;iMX8M的电源管理芯片有六个降压稳压器、五…...

vue中v-for循环数组使用方法中splice删除数组元素(错误:每次都删掉点击的下面的一项)

总结&#xff1a;平常使用v-for的key都是使用index&#xff0c;这里vue官方文档也不推荐&#xff0c;这个时候就出问题了&#xff0c;我们需要key为唯一标识&#xff0c;这里我使用了时间戳&#xff08;new Date().getTime()&#xff09;处理比较复杂的情况&#xff0c; 本文章…...

Python用GAN生成对抗性神经网络判别模型拟合多维数组、分类识别手写数字图像可视化...

全文链接&#xff1a;https://tecdat.cn/?p33566 生成对抗网络&#xff08;GAN&#xff09;是一种神经网络&#xff0c;可以生成类似于人类产生的材料&#xff0c;如图像、音乐、语音或文本&#xff08;点击文末“阅读原文”获取完整代码数据&#xff09;。 相关视频 最近我们…...

嵌入式Linux驱动开发(LCD屏幕专题)(一)

一、LCD简介 总的分辨率是 yres*xres。 1.1、像素颜色的表示 以下三种方式表示颜色 1.2、如何将颜色数据发送给屏幕 每个屏幕都有一个内存&#xff08;framebuffer&#xff09;如下图&#xff0c;内存中每块数据对用屏幕上的一个像素点&#xff0c;设置好LCD后&#xff…...

uniapp搜索功能

假设下方数据是我们从接口中获取到的&#xff0c;我们需要通过name来搜索&#xff0c;好我们看下一步。 data: [{"id": 30,"category_id": 3,"name": "日常家居名称","goods_num": 20,"integral_num": 20,&q…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架&#xff0c;用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录&#xff0c;以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端&#xff0c;同时完善学生端的构建。本次工作主要包括&#xff1a; 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...