【网络安全 --- web服务器解析漏洞】IIS,Apache,Nginx中间件常见解析漏洞

一,工具及环境准备

以下都是超详细保姆级安装教程,缺什么安装什么即可(提供镜像工具资源)

1-1 VMware 16.0 安装

【网络安全 --- 工具安装】VMware 16.0 详细安装过程(提供资源)-CSDN博客文章浏览阅读207次,点赞9次,收藏2次。【网络安全 --- 工具安装】VMware 16.0 详细安装过程(提供资源)https://blog.csdn.net/m0_67844671/article/details/133609717?spm=1001.2014.3001.5502

1-2 Windows server 2003 安装

【网路安全 --- win2003安装】 windows server 2003 详细安装过程(提供镜像资源)_win2003server安装教程_网络安全_Aini的博客-CSDN博客文章浏览阅读247次。【网路安全 --- win2003安装】 windows server 2003 详细安装过程(提供镜像资源)_win2003server安装教程https://blog.csdn.net/m0_67844671/article/details/133675835?spm=1001.2014.3001.5502

1-3 pikachu靶场安安装

【网路安全 --- pikachu靶场安装】超详细的pikachu靶场安装教程(提供靶场代码及工具)_网络安全_Aini的博客-CSDN博客文章浏览阅读208次,点赞11次,收藏3次。【网路安全 --- pikachu靶场安装】超详细的pikachu靶场安装教程(提供靶场代码及工具)https://blog.csdn.net/m0_67844671/article/details/133682360?spm=1001.2014.3001.5502

1-4 凡诺企业管理系统靶场安装

【网络安全 ---- 靶场搭建】凡诺企业网站管理系统靶场详细搭建过程(asp网站,练习Access数据库的 sql注入)-CSDN博客文章浏览阅读545次。【网络安全 ---- 靶场搭建】凡诺企业网站管理系统靶场详细搭建过程(asp网站,练习sql注入)https://blog.csdn.net/m0_67844671/article/details/133696909?spm=1001.2014.3001.5502

二,服务器解析漏洞

服务器解析漏洞算是历史比较悠久了,但如今依然广泛存在。在此记录汇总一些常见服务器(WEB server)的解析漏洞,比如IIS6.0、IIS7.5、apache、nginx等方便以后回顾温习。

2-1 IIS5.x-6.x解析漏洞

## 使用iis5.x-6.x版本的服务器,大多为windows server 2003,网站比较古老,开发语句一般为asp;该解析漏洞也只能解析asp文件,而不能解析aspx文件。win7-win10中多为iis7.x-8.x了,版本比较高。
    
目录解析(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
     
修复方案
1.目前尚无微软官方的补丁,可以通过自己编写正则,阻止上传xx.asp;.jpg类型的文件名。
2.做好权限设置,限制用户创建文件夹。

2-1-1  www.xxx.com/xx.asp;.jpg

 我们演示一个www.xxx.com/xx.asp;.jpg

我们打开凡诺企业管理系统网站(靶场安装请看第一部分工具及环境准备)

这个首页就是index.asp ,我们复制一份这个index.asp,重命名为show.asp;.jpg 如下:

然后浏览器访问 http://192.168.31.208/show.asp;.jpg
 

发现依然能访问成功,这就是一个解析漏洞,如果发现asp网站有能上传图片的地方,可以使用这种方法上传asp木马程序来绕过验证 

2-1-2 www.xxx.com/xx.asp/xx.jpg

原理: 服务器默认会把.asp,.asa目录下的文件都解析成asp文件。

浏览器访问 192.168.31.208/xx.asp/index.jpg 

我们发现报错了,不过报错也正常,因为首页肯定包含一些别的代码文件,我们把首页移动到了别的目录,当然找不到这些包含的路径了,所以报错,而上图也显示确实找不到一个包含文件,但是肯定的是index.jpg当一个asp文件执行了,只是执行的时候由于路径问题报错了而已 

2-1-3 index.asa | index.cer | index.cdx 

 IIS6.0 默认的可执行文件除了asp还包含这三种 :
 /test.asa
 /test.cer
 /test.cdx
 

选一个演示一下,我们把首页的index.asp改名字改为index.cer 

访问效果如下,也能进行访问

 

cer文件一般是证书文件,iis默认也是可以解析的,我们来看网站属性  

 

2-2 apache 解析漏洞 

漏洞原理
  Apache 解析文件的规则是从右到左开始判断解析,如果后缀名为不可识别文件解析,就再往左判断。比如test.php.owf.rar “.owf”和”.rar” 这两种后缀是apache不可识别解析,apache就会把xx.php.owf.rar解析成php。
    
## 漏洞形式
 www.xxxx.xxx.com/test.php.php123这个漏洞当时通杀了所有的apache搭建的网站。
    
## 其余配置问题导致漏洞

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

 示例:www.xxxx.xxx.com/test.php.php123

以pikachu靶场为例(靶场安装请看第一部分工具及环境准备)

比如我们将sql.php改为sql.php.xxxx,正常来讲的话是不能解析的,但是老版本的apache(apache2.2版本及之前的)是能够正常将这个文件解析为php文件的

我用的是新版本的apache,没搭建老版本的,所以这个漏洞大家就记住他就行了,当然,新版本的apache如果配置不当也会引起这个漏洞,有兴趣的大家可以去安装一个低版本的apache来玩玩,你看新版本的就不解析运行代码了,直接把源代码给你看,而不是将源代码执行了。以前大家通过黑名单的方式来防御的,基本都挂了,因为你发现后缀名你随意写  

 

其余配置问题导致漏洞  

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

这两个漏洞不是apache自身的问题,而是运维人员进行配置时,自己配置的出了问题。

 这里就不演示了

修复方案

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

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

2.用伪静态能解决这个问题,重写类似.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>

2-3 nginx解析漏洞

大致原理:该漏洞与nginx、php版本无关,属于配置不当造成的解析漏洞。  

## 当php.ini配置文件中开启了cgi.fix_pathinfo,该值默认为1,表示开启。看名字大概知道是处理路径用的配置。


## 比如我们上传了一个木马文件web.jpg,因为web.php不能上传,现在我们想执行这个web.jpg,可以如下路径访问
http://192.168.2.104/pikachu/web.jpg/aaa.php

## 而目标服务器上没有aaa.php文件,本来如果nginx.conf的配置没有问题的话,nginx会先去找下这个文件是否存在,如果存在,在找php解释器来解释执行代码,如果不存在,nginx会直接返回错误信息,说找不到该文件,但是如果nginx.conf配置不当会导致nginx把以’.php’结尾的文件交给fastcgi处理,也就是说首先nginx看到你路径中要找aaa.php,哦,原来是php文件,nginx不去找这个文件了,而是就直接交给了fastcgi,fastcgi又去找php解释器去处理该路径,而php开启了cgi.fix_pathinfo,那么php解释器处理这个路径的时候,发现没有aaa.php文件,那么他会找路径中上一层路径的文件作为aaa.php来运行,如是乎就找到了web.jpg,将web.jpg当作aaa.php来运行了,所以代码被执行,看到如下效果

示例:我们通过phpstudy来改成nginx运行  (pikachu靶场)

fix_pathinfo这个功能参数默认是开启的,所以这个漏洞影响也是比较大的,我们访问一下phpinfo.php文件,看看这个功能是否开启了。  

值为1表示开启状态,那么就存在这个漏洞

比如我将一个木马文件,改为.jpg文件,放到pikachu的文件夹下  

(这个木马文件在文件上传闯关靶场的工具资料里给过,需要的看我下面这篇博客下载)

【网络安全 --- 任意文件上传漏洞靶场闯关 6-15关】任意文件上传漏洞靶场闯关,让你更深入了解文件上传漏洞以及绕过方式方法,思路技巧-CSDN博客文章浏览阅读901次,点赞3次,收藏2次。【网络安全 --- 任意文件上传漏洞靶场闯关 6-15关】任意文件上传漏洞靶场闯关,让你更深入了解文件上传漏洞以及绕过方式方法,思路技巧https://blog.csdn.net/m0_67844671/article/details/134114898?spm=1001.2014.3001.5502

然后通过浏览器来访问一下  

能看出,默认是不能访问的,我们只要在路径后面加上一个 /tu.php ,就能够按照php来解析了,直接就是漏洞。因为图片我们是正常能够上传的,上传过去之后,如果是nginx来解析的,并且开启了cgi.fix_pathinfo功能,那么基本上属于被你拿下了。  

 其他漏洞形式

www.xxxx.com/UploadFiles/image/1.jpg/1.php,这是上面说的漏洞
www.xxxx.com/UploadFiles/image/1.jpg%00.php #我们试过这个00截断,除了apache之外,nginx也有这个00截断漏洞,这个导致的效果是:1.jpg会被当成php文件来解析。
    
www.xxxx.com/UploadFiles/image/1.jpg/%20\0.php #也算是00截断的一种  

xxx.jpg%00.php (Nginx <0.8.03版本 存在空字节代码执行漏洞)  

修复方案

1.修改php.ini文件,将cgi.fix_pathinfo的值设置为0;

2.在Nginx配置文件中添加以下代码:

if ( $fastcgi_script_name ~ ..*/.*php ) {
 return 403;
}

这行代码的意思是当匹配到类似test.jpg/a.php的URL时,将返回403错误代码。

2-4 IIS7.x解析漏洞

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

PHP - - phpStudy

当安装完成后, php.ini里默认cgi.fix_pathinfo=1,对其进行访问的时候,在URL路径后添加.php后缀名会当做php文件进行解析,漏洞由此产生

php.ini文件配置  

虽然通过配置上看,我们发现是有这个漏洞的,但是实际测试过程中,并不是那么简单,如下,注意,下面的示例是用的phpstudy2016版本来演示的,win7及以上的系统才行昂,win2003不行的,勾选iis的时候,可能会提示你,说你没有尚未安装iis 7/8,大家自行安装一下即可。按照这个phpstudy的官网来安装:PHP - - phpStudy,其中要激活CGI功能,别忘了。  

 

你的phpstudy可能会报错  

解决方法:安装vc9工具  

放到我们的win7虚拟机上  

安装  

一会就提示你安装好了,在重启phpstudy即可。如果提示你网站运行端口冲突了,我们改个端口即可,按照文档的安装和配置,我们访问我们的iis网站下面的图片时

 

 

根据iis的解析漏洞方式来写如下访问网址:  

 

还是报错了,要进行如下配置才能看到效果。  

找到网站代码存放目录,来部署网站:  

注:在进行实际的测试的时候,iis并不像nginx似的直接可以利用,发现漏洞并没有产生,后来发现要将FastCGI的调用情况取消限制,如下,将对勾去掉。  

效果如下  

 

所以你会发现,这个漏洞如果想用的话,高版本需要进行很多的配置,所以一般不会出现这个漏洞  

中间件常见解析漏洞就讲到这里,下一篇博客文件包含漏洞 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】第十二站:进程

文章目录 1.windows和linux中的进程2.先描述3.在组织4.具体的Linux系统是如何做的&#xff1f;1.基本概念2.描述进程-PCB3.task_struct和PCB的关系4.task_struct内容分类5.linux具体如何做的&#xff1f;6.查看进程 1.windows和linux中的进程 一个已经加载到内存的程序&#xf…

洛谷P1102 A-B数对 详细解析及AC代码

P1102 A-B数对 前言题目题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示题目分析注意事项 代码经典二分&#xff08;O(nlgn)&#xff09;酷炫哈希&#xff08;O(n)&#xff09; 后话额外测试用例样例输入 #2样例输出 #2 王婆卖瓜 题目来源 前言 酷&…

生成式人工智能的“经济学”,The Economic Case for Generative AI#a16z

a16z召集了行业精英&#xff0c;为我们带来了有关生成式AI的洞察。在创造力方面&#xff0c;生成式AI带来了3-4倍量级的成本优势&#xff0c;更多新的需求将诞生。 AI REVOLUTION The Economic Case for Generative AI Martin Casado MixCopilot 大家好&#xff0c;欢迎来到本期…

遇到python程序是通过sh文件启动的,如何调试

说明 下载的源码总会遇到这样启动的&#xff1a; 并且发现shell文件内容很多&#xff0c;比较复杂&#xff0c;比如&#xff1a; 解决方案 这时候想要调试&#xff0c;可以通过端口连接的方式调试&#xff0c;具体方法如下&#xff1a; 在vscode调试按钮中添加远程附加调试…

【kubernetes】pod的生命周期

文章目录 1、概述2、pod的生命期3、pod阶段4、容器状态5、容器重启策略6、pod状况6.1 Pod就绪态6.2 Pod就绪态的状态6.3 Pod网络就绪 7、容器探针7.1 检查机制7.2 探测结果7.3 探测类型 8、Pod的终止8.1 强制终止Pod8.2 Pod的垃圾收集 1、概述 pod遵循预定义的生命周期&#x…

【MogDB/openGauss误删未归档的xlog日志如何解决】

在使用MogDB/openGauss数据库的过程中&#xff0c;有时候大量业务&#xff0c;或者导数据会导致pg_xlog下的日志数量持续增长&#xff0c;此时如果xlog的产生频率太快&#xff0c;而来不及自动清理&#xff0c;极有可能造成pg_xlog目录的打满。如果对数据库的xlog不太了解的时候…

解决Java中https请求接口报错问题

1. 解决SSLException: Certificate for &#xff1c;域名&#xff1e; doesn‘t match any of the subject alternative报错问题 1.1 问题描述 最近在做一个智能问答客服项目&#xff0c;对接的是云问接口&#xff0c;然后云问接口对接使用的是https方式&#xff0c;之前一直…

git push超过100MB大文件失败(remote: fatal: pack exceeds maximum allowed size)

push代码的时候&#xff0c;有时会出现如下问题 remote: fatal: pack exceeds maximum allowed size error: failed to push some refs to ‘git.n.xiaomi.com:fuzheng1/nl2sql.git’ 解决方案&#xff1a; 将本地 http.postBuffer 数值调整到GitHub服务对应的单次上传大小配置…

凭什么不让使用外键!?

△Hollis, 一个对Coding有着独特追求的人△ 这是Hollis的第 434 篇原创分享 作者 l Hollis 来源 l Hollis&#xff08;ID&#xff1a;hollischuang&#xff09; MySQL 外键&#xff08;Foreign Key&#xff09;是用于建立表之间关系的&#xff0c;它定义了一个表中的一列或一组…

IDEA JAVA项目 导入JAR包,打JAR包 和 JAVA运行JAR命令提示没有主清单属性

一、导入JAR包 1、java项目在没有导入该jar包之前&#xff0c;如图&#xff1a;2、点击 File -> Project Structure&#xff08;快捷键 Ctrl Alt Shift s&#xff09;&#xff0c;点击Project Structure界面左侧的“Modules”如图&#xff1a;3.在 “Dependencies” 标签…

Javaweb之javascript的详细解析

JavaScript html完成了架子&#xff0c;css做了美化&#xff0c;但是网页是死的&#xff0c;我们需要给他注入灵魂&#xff0c;所以接下来我们需要学习JavaScript&#xff0c;这门语言会让我们的页面能够和用户进行交互。 1.1 介绍 通过代码/js效果演示提供资料进行效果演示&…

使用Kotlin与Unirest库抓取音频文件的技术实践

目录 摘要 一、Kotlin与Unirest库概述 二、使用Kotlin和Unirest抓取音频文件 1、添加Unirest依赖 2、发送HTTP请求获取音频文件 3、保存音频文件 三、完整代码示例 四、注意事项 结论 摘要 本文详细阐述了如何使用Kotlin编程语言与Unirest库抓取网络上的音频文件。首…

kimera论文阅读

功能构成&#xff1a; Kimera包括四个关键模块: Kimera-VIO的核心是基于gtsam的VIO方法[45]&#xff0c;使用IMUpreintegration和无结构视觉因子[27]&#xff0c;并在EuRoC数据集上实现了最佳性能[19]; Kimera-RPGO:一种鲁棒姿态图优化(RPGO)方法&#xff0c;利用现代技术进…

伦敦金周末可以交易吗,黄金休市时间是那些?

伦敦金是国际性投资产品&#xff0c;主要交易中心有亚洲、欧洲和美洲&#xff0c;在时差的作用下&#xff0c;三大市场相互连接&#xff0c;形成了全天24小时几乎不间断的交易时间&#xff0c;也为炒金者们提供了充分的操作机会。即便如此&#xff0c;在一些特定的时间段内&…

springboot前后端时间类型传输

springboot前后端时间类型传输 前言1.java使用时间类型java.util.Date2.java使用localDateTime 前言 springboot前后端分离项目总是需要进行时间数据类型的接受和转换,针对打代码过程中不同的类型转化做个总结 1.java使用时间类型java.util.Date springboot的项目中使用了new …

电脑发热发烫,具体硬件温度达到多少度才算异常?

环境&#xff1a; 联想E14 问题描述&#xff1a; 电脑发热发烫,具体硬件温度达到多少度才算异常? 解决方案&#xff1a; 电脑硬件的温度正常范围会因设备类型和使用的具体硬件而有所不同。一般来说&#xff0c;以下是各种硬件的正常温度范围&#xff1a; CPU&#xff1a;正…

【10套模拟】【2】

关键字&#xff1a; 哈希函数解决问题、进栈、无向图边与度、双向链表插入新结点、折半查找判定树ASL、孩子兄弟表示法、树变二叉、快排partiction划分

如何获取HuggingFace的Access Token;如何获取HuggingFace的API Key

Access Token通过编程方式向 HuggingFace 验证您的身份&#xff0c;允许应用程序执行由授予的权限范围&#xff08;读取、写入或管理&#xff09;指定的特定操作。您可以通过以下步骤获取&#xff1a; 1.首先&#xff0c;你需要注册一个 Hugging Face 账号。如果你已经有了账号…

jenkins展示html报告样式需要注意的要点

一、jenkins展示html报告样式需要注意的要点 最后&#xff1a;

Docker 持久化存储和数据共享_Volume

有些容器会自动产生一些数据&#xff0c;为了不让数据随着 container 的消失而消失&#xff0c;保证数据的安全性。例如&#xff1a;数据库容器&#xff0c;数据表的表会产生一些数据&#xff0c;如果我把 container 给删除&#xff0c;数据就丢失。为了保证数据不丢失&#xf…