组件安全以及漏洞复现

组件安全

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

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

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

相关文章

目标检测入门

一、目标检测任务对比 二、目标检测发展路线 基于深度学习的目标检测大致可以分为一阶段(One Stage)模型和二阶段(Two Stage)模型。目标检测的一阶段模型是指没有独立地提取候选区域(Region Proposal)&#xff0c;直接输入图像得到图中存在的物体类别和相应的位置信息。典型的一…

进程与线程的关系,进程调度的基本过程

目标&#xff1a; 1. 了解进程与线程的关系 2. 进程调度的基本过程 进程与线程的关系 在我们学习进程调度前&#xff0c;我们先了解一下进程与线程&#xff1a; 1.进程是线程的容器 进程包含线程&#xff0c;一个进程里可以有一个线程&#xff0c;也可以有多个线程。 多个线程…

分类模型训练pil、torchvision.transforms和opencv的resize

参考&#xff1a;https://blog.csdn.net/weixin_41012399/article/details/126049885 https://www.cnpython.com/qa/1291644 https://blog.csdn.net/weixin_44966641/article/details/125084573 https://blog.csdn.net/IEEE_FELLOW/article/details/115536987 训练时用pil读取图…

.net 7 隐藏swagger的api

1.写一个隐藏接口特性表示 using Microsoft.AspNetCore.Mvc.ApiExplorer; using Microsoft.OpenApi.Models; using Swashbuckle.AspNetCore.SwaggerGen;using System.Web.Http.Description;namespace JiaTongInterface.Filter {public class SwaggerApi : Swashbuckle.AspNet…

点云从入门到精通技术详解100篇-基于光谱共焦系统的三维点云数据处理

目录 前言 国内外研究现状 点云基础和相关技术研究 2.1 点云数据格式 2.1.1 LAS 格式

iframe 实现跨域,两页面之间的通信

一、 背景 一个项目为vue2&#xff0c;一个项目为vue3&#xff0c;两个不同的项目实现iframe嵌入&#xff0c;并实现通信 二、方案 iframe跨域时&#xff0c;iframe组件之间常用的通信&#xff0c;主要是H5的possmessage方法 三、案例代码 父页面-vue2&#xff08;端口号为…

“投资教父”熊晓鸽老了,IDG光环不再

作者 | 鸠白 艺馨 排版 | Cathy 监制 | Yoda 出品 | 不二研究 2017年&#xff0c;世界互联网大会上&#xff0c;“投资教父”熊晓鸽问映客的创始人&#xff1a;“今年你们利润能有多少&#xff1f;” 对方笑答&#xff1a;“5个亿吧&#xff01;” “才五个亿&#xff1f…

Kubernetes (K8s) 解读:微服务与容器编排的未来

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f405;&#x1f43e;猫头虎建议程序员必备技术栈一览表&#x1f4d6;&#xff1a; &#x1f6e0;️ 全栈技术 Full Stack: &#x1f4da…

leetcode 234. 回文链表

2023.9.5 本题先将链表的节点值移到数组中&#xff0c;再用双指针去判断该数组是否为回文的即可。 代码如下&#xff1a; /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* …

细说GNSS模拟器的RTK功能(三)应用实例01——运行和分析模拟

在上期文章中我们介绍了基于RTCM插件来模拟RTCM使用的硬件和软件设置&#xff0c;本期文章我们将继续进行运行和分析模拟。 使用RTCM插件 运行和分析模拟 连接Ublox接收器 虽然采用了Novatel接收器进行模拟来获得更好的位置精度&#xff0c;但也同样适用于Ublox接收器。要将…

centos7 firewalld ip转发设置、安装docker-compose出现错误、docker-compose部署Yapi

一 centos7 firewalld ip转发设置 #!/bin/bash #开启系统路由模式功能 vim /etc/sysctl.conf #添加下面一行 net.ipv4.ip_forward1 #运行这个命令会输出上面添加的那一行信息&#xff0c;意思是使内核修改生效 sysctl -p #开启firewalld systemctl start firewalld #防火墙开启…

代码随想录算法训练营19期第49天

121. 买卖股票的最佳时机 视频讲解&#xff1a;动态规划之 LeetCode&#xff1a;121.买卖股票的最佳时机1_哔哩哔哩_bilibili 代码随想录 初步思路&#xff1a;贪心。 总结&#xff1a; 分别考虑2种情况&#xff1a; 【1】dp[i][0] 表示第i天持有股票所得最多现金 【2】…

【数据结构】前言概况 - 树

&#x1f6a9;纸上得来终觉浅&#xff0c; 绝知此事要躬行。 &#x1f31f;主页&#xff1a;June-Frost &#x1f680;专栏&#xff1a;数据结构 &#x1f525;该文章针对树形结构作出前言&#xff0c;以保证可以对树初步认知。 目录&#xff1a; &#x1f30d;前言:&#x1f3…

Pytorch Advanced(三) Neural Style Transfer

神经风格迁移在之前的博客中已经用keras实现过了&#xff0c;比较复杂&#xff0c;keras版本。 这里用pytorch重新实现一次&#xff0c;原理图如下&#xff1a; from __future__ import division from torchvision import models from torchvision import transforms from PIL…

零碎的c++二

虚函数 虚函数是C中实现多态的一种机制&#xff0c;它允许通过基类指针或引用来调用派生类的成员函数。虚函数的作用是实现动态绑定&#xff0c;即在运行时根据对象的实际类型来确定调用哪个函数。虚函数的声明方式是在函数前加上关键字virtual&#xff0c;如&#xff1a; cl…

Json“牵手”亚马逊商品详情数据方法,亚马逊商品详情API接口,亚马逊API申请指南

亚马逊平台是美国最大的一家网络电子商务公司&#xff0c;亚马逊公司是1995年成立&#xff0c;刚开始只做网上书籍售卖业务&#xff0c;后来扩展到了其他产品。现在已经是全世界商品品种最多的网上零售商和第二互联网公司&#xff0c;亚马逊是北美洲、欧洲等地区的主流购物平台…

数据结构:线性表之-循环双向链表(万字详解)

目录 基本概念 1&#xff0c;什么是双向链表 2&#xff0c;与单向链表的区别 双向链表详解 功能展示&#xff1a; 1. 定义链表 2&#xff0c;创建双向链表 3&#xff0c;初始化链表 4,尾插 5&#xff0c;头插 6&#xff0c;尾删 判断链表是否被删空 尾删代码 7&a…

我们这一代人的机会是什么?

大家好&#xff0c;我是苍何&#xff0c;今天作为专业嘉宾参观了 2023 年中国国际智能产业博览会&#xff08;智博会&#xff09;&#xff0c;是一场以「智汇八方&#xff0c;博采众长」为主题的汇聚全球智能技术和产业创新的盛会&#xff0c;感触颇深&#xff0c;随着中国商业…

JVM相关知识点

Java可以跨平台的原因 Java可以跨平台的原因是因为它使用了Java虚拟机&#xff08;JVM&#xff09;作为中间层。Java源代码首先被编译成字节码&#xff0c;然后由JVM解释执行或即时编译成本地机器代码。这样&#xff0c;在不同的操作系统上&#xff0c;只需要安装适合该操作系…

9月11日作业

思维导图 代码 #include <iostream> #include<string.h>using namespace std;class myString { private:char *str; //记录c风格的字符串int size; //记录字符串的实际长度 public://无参构造myString():size(10){str new char[size]; …