渗透测试-中间件解析漏洞分析

中间件解析漏洞分析

文章目录

  • 中间件解析漏洞分析
  • 前言
  • 一、什么是解析漏洞
  • 二、解析漏洞基本原理以及利用实例
    • 1. 解析漏洞基本原理及实例
  • 总结

前言

一、什么是解析漏洞

文件解析漏洞主要由于网站管理员操作不当或者 Web 服务器自身的漏洞,导致一些特殊文件被 IIS、apache、nginx 或其他 Web服务器在某种情况下解释成脚本文件执行。

比如网站管理员配置不当,导致php2、phtml、ascx等等这些文件也被当成脚本文件执行了。甚至某些情况下管理员错误的服务器配置导致.html、.xml等静态页面后缀的文件也被当成脚本文件执行。

但是,大部分的解析漏洞还是由于web服务器自身的漏洞,导致特殊文件被当成脚本文件执行了。

二、解析漏洞基本原理以及利用实例

1. 解析漏洞基本原理及实例

解析漏洞主要分为(apache,nginx,IIs)中间件解析漏洞,下面主要针对这几个解析漏洞进行讲解,这里就不在演示实际案例进行实验了,主要还是结合文件上传漏洞一起利用得到shell的。
还有IIS在window的安装过程大家可以在网上找一下教程进行安装使用。
(1)IIS5-6解析漏洞

  1. 主要是在后缀名为.asp,.asa的目录下都会解析成asp文件,还有例如:
    xx.asp:.jpg也会解析成.asp文件,只要找到文件的路径,打开,复制网址到蚁剑连接就可以得到shell。
  2. IIS主要解析的是asp文件,网站也主要是asp文件,所以蚁剑是可以连接的上的。
  3. 另外补充一下IIS6.0默认的可执行文件出来asp还包含了这三种:
    /test.asa,test.cer,/test.cdx

(2)apache解析漏洞
漏洞原理:
Apache解析文件的规则是从左到右开始判断解析,如果或追梦为不可识别文件解析,就在从左判断,比如test.php.owf.rar。"owf"和"rar"不可识别解析,apache就会把test.php.owf.rar解析成php

首先要了解apache网站是以php代码执行的,只要我们上传php脚本木马就可以获得shell了。
例如:我们举个例子,若存在漏洞的时候,xx.php.php123文件就会解析成php文件执行。
其配置问题导致漏洞
(1)如果在apache的conf里有这样遗憾配置AddHandler php5-script .php 这时只要文件名里包含.php 即使文件名是test2.php.jpg也会以php来执行
(2)如果在apache的conf里有这样一行配置AddType application/x-httpd .jpg 即使扩展名是.jpg,一样以php方式执行。

apache漏洞防御方法:

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

    Order Allow,Deny
    Deny from all

(3)Nginx解析漏洞
漏洞原理:
我这里直接上截图,大家看的会更清楚一些
渗透测试-中间件解析漏洞分析_第1张图片
这里补充一下%00表示空字符,%20表示空格
解释一下%00截断
我们通过服务器的解析漏洞,上传文件时将文件名用一下格式命名:xx
.asp%00.jpg,之后进行抓包,将%00编码成空字符(也是字符串结束符)之后forword数据包,可以进行绕过。

还有一种手法:
上传一个名字为test.jpg,以下内容的文件

'); ?>

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

修复方案:

  1. 修改php.ini文件,将cgi.fix_pathinfo的值设置为0;
  2. 在nginx配置文件中添加一下代码:
    if($fastcgi_script_name ~ …*/.*php){
    return 403;
    }
    这行代码的意思是当匹配到test.jpg/a.php的URL时,将返回403错误代码。

(4)IIS7.5解析漏洞
漏洞原理跟nginx的类似,也是开启了cgi.fix_pathinfo,设置为1,导致的漏洞,也是将test.jpg/.php解析成了.php文件,防御方法只需将cgi.fix_pathinfo设置为0就行了。

总结

本次我们简单介绍了中间件解析漏洞的原理,以及防御方法,我们在测试过程中若遇到这些中间件解析漏洞,可以进行利用,从而获得shell,为后面的提权做铺垫。

你可能感兴趣的:(渗透测试,安全性测试,web安全,安全)