组件安全以及漏洞复现

组件安全

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 开发框架

JAVA PHP Python JS
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)

组件安全以及漏洞复现_第1张图片

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

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

python3 -m pip install -r requirements.txt

组件安全以及漏洞复现_第2张图片

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

python3 scan.py

输入?

组件安全以及漏洞复现_第3张图片

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.ajest upload-labs/Pass-07
多后缀名解析漏洞 yjh.php.png Vulhub - httpd 多后缀名解析
换行解析漏洞 CVE-2017-15715 yjh.php%0a Vulhub - 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服务打开

组件安全以及漏洞复现_第4张图片

2.1.1.2 过程

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

组件安全以及漏洞复现_第5张图片

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

组件安全以及漏洞复现_第6张图片

修改文件类型

组件安全以及漏洞复现_第7张图片

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

组件安全以及漏洞复现_第8张图片

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

组件安全以及漏洞复现_第9张图片

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

组件安全以及漏洞复现_第10张图片

2.1.2 多后缀名解析实例

2.1.2.1 环境搭建

组件安全以及漏洞复现_第11张图片

2.1.2.2 过程

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

组件安全以及漏洞复现_第12张图片

组件安全以及漏洞复现_第13张图片

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

组件安全以及漏洞复现_第14张图片

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

组件安全以及漏洞复现_第15张图片

image-20230907135732224

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

组件安全以及漏洞复现_第16张图片

组件安全以及漏洞复现_第17张图片

2.1.3 换行解析漏洞

2.1.3.1 环境搭建

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

组件安全以及漏洞复现_第18张图片

启动环境

组件安全以及漏洞复现_第19张图片

2.1.3.2 过程

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

image-20230907175329948

组件安全以及漏洞复现_第20张图片

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

组件安全以及漏洞复现_第21张图片

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

组件安全以及漏洞复现_第22张图片

组件安全以及漏洞复现_第23张图片

访问上传文件

组件安全以及漏洞复现_第24张图片

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

2.1.4 apache 路径穿越漏洞

2.1.4.1 环境搭建

组件安全以及漏洞复现_第25张图片

2.1.4.2 过程

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

组件安全以及漏洞复现_第26张图片

访问

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

读到了passwd文件

组件安全以及漏洞复现_第27张图片

执行命令

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

组件安全以及漏洞复现_第28张图片

漏洞原因:是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-1938 vulhub/tomcat/CVE-2020-1938/
工具CNVD-2020-10487-Tomcat-Ajp-lfi

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

2.3.1 弱口令

2.3.1.1 环境搭建

组件安全以及漏洞复现_第29张图片

2.3.1.2 过程

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

组件安全以及漏洞复现_第30张图片

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

将大马war上传

image-20230907195722315

访问上传的war

组件安全以及漏洞复现_第31张图片

组件安全以及漏洞复现_第32张图片

2.3.2 本地文件包含

2.3.2.1 环境搭建

组件安全以及漏洞复现_第33张图片

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

组件安全以及漏洞复现_第34张图片

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

2.3.3 PUT方法任意写文件漏洞

2.3.3.1 环境搭建

组件安全以及漏洞复现_第35张图片

2.3.3.2 过程

使用nuclei扫描漏洞

sudo ./nuclei -u 192.168.16.176 

组件安全以及漏洞复现_第36张图片

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

image-20230907204259227

组件安全以及漏洞复现_第37张图片

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 nginx_parsing_vulnerability/

3.1.1 空字节漏洞

3.1.1.1 环境搭建

将压缩包加压至c盘下

组件安全以及漏洞复现_第38张图片

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

组件安全以及漏洞复现_第39张图片

3.1.1.2 过程

访问Nginx

组件安全以及漏洞复现_第40张图片

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

组件安全以及漏洞复现_第41张图片

该漏洞叫00截断

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

3.1.2 背锅解析漏洞

3.1.2.1 环境搭建

组件安全以及漏洞复现_第42张图片

3.1.2.2 过程

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

组件安全以及漏洞复现_第43张图片

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

组件安全以及漏洞复现_第44张图片

访问上传文件

组件安全以及漏洞复现_第45张图片

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

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 <----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 环境搭建

组件安全以及漏洞复现_第46张图片

组件安全以及漏洞复现_第47张图片

组件安全以及漏洞复现_第48张图片

以IIS10.0打开php

组件安全以及漏洞复现_第49张图片

组件安全以及漏洞复现_第50张图片

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

点击IIS管理器

组件安全以及漏洞复现_第51张图片

组件安全以及漏洞复现_第52张图片

组件安全以及漏洞复现_第53张图片

组件安全以及漏洞复现_第54张图片

4.2.2 漏洞

组件安全以及漏洞复现_第55张图片

组件安全以及漏洞复现_第56张图片

组件安全以及漏洞复现_第57张图片

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

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

组件安全以及漏洞复现_第58张图片

4.2.3 漏洞原因

组件安全以及漏洞复现_第59张图片

你可能感兴趣的:(安全,网络安全,web安全,安全架构,php)