Web后端服务平台解析漏洞与修复、文件包含漏洞详解

免责申明

        本文仅是用于学习检测自己搭建的Web后端服务平台解析漏洞、文件包含漏洞的相关原理,请勿用在非法途径上,若将其用于非法目的,所造成的一切后果由您自行承担,产生的一切风险和后果与笔者无关;本文开始前请认真详细学习《‌中华人民共和国网络安全法》‌及其所在国家地区相关法规内容【学法时习之丨网络安全在身边一图了解网络安全法_中央网络安全和信息化委员会办公室】 如您继续阅读该文章即表明您默认遵守该内容。

一、Web后端服务平台解析漏洞和修复

        Web网站的运行一般需要后端的服务器平台提供服务解析服务,常见的服务器平台有Apache、Nginx、IIS,而同一服务器下不同版本的服务平台又有不同的解析漏洞。

1.1、Apache解析漏洞

1.1.1、Apache解析漏洞的两种形式

        1、Apache典型解析漏洞原理:Apache解析文件的规则是从右到左开始判断解析,若文件后缀名为其不可识别的解析类型,就会向左移动判断(如:testck.php.hwk.rar文件其中【hwk】和【rar】 这两种后缀是Apache不可识别解析的文件类型,Apache就会把testck.php.hwk.rar解析成testck.php文件)。【该漏洞常见于Apache2.2及其之前的版本】

# Apache解析漏洞典型
http://xxx.xxx.com/testck.php.Apache不可解析的文件类型# 示例
http://xxx.xxx.com/testck.php.php123
http://xxx.xxx.com/testck.php.hwk
http://xxx.xxx.com/testck.php.ck

        2、 用户操作配置问题导致的解析漏洞(该漏洞是由于用户或运维人员配置操作引起的,可以避免掉):

《1》修改并启用了Apache的【httpd.conf】配置文件的【 AddHandler php5-script 】内容,并添加了其他类型如(.ck .jpg .pdf)类型,那么只要文件名里包含.php 即使文件名是 test.php.ck也会以 php 的方式来执行。

《2》修改并启用了Apache的【httpd.conf】配置文件的【AddType application/x-httpd-php .php .phtml】内容,并添加了其他的类型如(.jpg .php3 .php5)类型,那么这些类型的文件都可以被打开且以php的方式进行执行,如下图所示:

 1.1.2、Apache解析漏洞的修复方法

        《1》通过了解Apache的漏洞原理我们可以知道,造成的漏洞都是由于文件名包含【.php.】引起的,那么我们可以将这种类型禁止掉即可。

# 禁止掉Apache可以解析.php.或.php3.或.php5.文件内容配置命令:
<Files ~ ".(php.|php3.|php5.)">Order Allow,DenyDeny from all
</Files>

 

        《2》用伪静态能解决这个漏洞,重写类似.php.*这类文件,打开Apache的httpd.conf配置文件并找到【LoadModule rewrite_module modules/mod_rewrite.so】把#号去掉后重启Apache;然后在网站根目录下创建名为【.htaccess】的文件。

在网站根目录下创建名为【.htaccess】的文件内容如下:

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

1.2、Nginx解析漏洞

1.2.1、Nginx解析漏洞形式

        《1》PHP的配置文件【php.ini】是默认启用【cgi.fix_pathinfo】配置(该配置是修复路径信息内容的)【cgi.fix_pathinfo】配置为1表示启用,0表示禁用该Nginx的解析漏洞是由于用户或运维人员配置不当引起的,与Nginx和PHP的版本无关】(该漏洞原理是:我们的服务器被上传了【test.jpg】的木马,正常我们访问test.jpg路径为【http://192.168.3.176/pikachu/test.jpg】,若我们要想将test.jpg当做php执行就可以修改路径为【http://192.168.3.176/pikachu/test.jpg/xx.php】,此处我们构造的这个xx.php文件在服务器上是不存在的。而我们的服务器PHP开启了【cgi.fix_pathinfo】配置,此时PHP的解释器处理在处理这个路径的时候,发现没有xx.php这个文件,此时就会找路径中上一层路径的文件作为xx.php来运行,于是就找到了test.jpg,将test.jpg当作xx.php来运行了)效果如下:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql怎样优化count(*) from 表名 where …… or ……这种慢sql

一 问题描述 线上发现一条类似这样的慢sql&#xff08;查询时长8s&#xff09;&#xff1a; select id,name,(select count(*) from t14 where t14.idt15.id or t14.id2t15.id) as cnt from t15 ; t14的id和id2字段上都有索引&#xff0c;但是因为条件里有or&#xff0c;导致…

电路设计学习(一)

FUSB302BUCX 可编程 USB Type-C 控制器&#xff0c;带 PD&#xff08;默认 SNK&#xff09; FUSB302BUCX 是一款由 ON Semiconductor 生产的 USB Type-C 控制器&#xff0c;用于实现 USB Type-C 和 USB Power Delivery (PD) 协议。它主要负责 USB Type-C 端口的检测、CC 引脚…

GESP C++二级样题卷

一、单选题&#xff08;每题 2 分&#xff0c;共 30 分&#xff09; 1.目前主流的计算机储存数据最终都是转换成&#xff08; &#xff09;数据进行储存。 ​ A&#xff0e;二进制 ​ B&#xff0e;十进制 ​ C&#xff0e; 八进制 ​ D&#xff0e;十六进制 2.已知大写字…

结构开发笔记(八):solidworks软件(七):装配图中让摄像头绕轴旋转起来

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/142176639 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…

量化交易backtrader实践(二)_基础加强篇(3)_策略类实践进阶

通过前面几节的实践&#xff0c;我们已经对股票数据的获取&#xff0c;pandasData数据的格式处理&#xff0c;到bactrader的DATAS结构以及里面的data的数据结构&#xff0c;以及在init和next函数中如何读取和计算都有了比较清晰的认知。我们通过一个最简的回测系统&#xff0c;…

Java 读取特定目录下子文件夹的 json格式文件并解析

一、需求   有一个目录结构&#xff0c;包含多个子文件夹&#xff0c;每个子文件夹中都有一个名为goods.txt的文件&#xff0c;文件内容以 JSON 格式存储。现在需要将所有的goods.txt文件内容读取出来&#xff0c;放在一个List集合中&#xff0c;以便进行后续的处理。 二、使…

Pre-training、Post-training、Continue training的区别

在训练大语言模型时&#xff0c;大家可能会搞混以下几个概念&#xff0c;下面做一个详细的对比区分&#xff1a; 概念Pre-training&#xff08;预训练&#xff09;Post-training&#xff08;后训练&#xff09;Continue Training&#xff08;持续训练&#xff09;定义预训练是…

C# 结合 Javascript 测试获取天气信息

目录 测试效果 范例运行环境 关键代码 C#获取网页数据 前端代码 JavaScript 实现 总结 测试效果 获取一些简单的天气信息&#xff0c;可以丰富我们的应用系统&#xff0c;比如开发一个小桌面&#xff0c;小组件&#xff0c;增加一些实用性的系统功能&#xff0c;本文将…

pip清华源地址

一、pip清华源地址 https://pypi.tuna.tsinghua.edu.cn/simple 二、清华源使用方法 pip install package_name -i https://pypi.tuna.tsinghua.edu.cn/simple 三、将清华源设置为默认源&#xff1a; pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/si…

neo4j安装为服务+配置环境变量

目录 neo4j安装为服务 windows services 参照JDK&#xff0c;将neo4j加入到环境变量 neo4j安装为服务 windows services 我的上一篇文章详细写明了如何安装启动neo4j《neo4j安装启动教程对应的jdk配置》&#xff0c;文末的启动neo4j是通过cmd命令行访问bin目录&#xff0c;这…

Git+Jenkins 基本使用(Basic Usage of Git+Jenkins)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…

Java企业面试题2

1.语言的分代&#xff1a; 第1代&#xff1a;机器语言 机器语言是最底层的计算机编程语言&#xff0c;它是由二进制数构成的一系列指令&#xff0c;直接与计算机硬件交互。每个二进制位模式代表一条特定的指令或数据地址。因为它是直接在硬件上执行的&#xff0c;所以运行效率…

大尺寸卷积核的优缺点

大尺寸卷积核在卷积神经网络中具有一些独特的优缺点&#xff0c;具体如下&#xff1a; 优点&#xff1a; 更大的感受野&#xff1a; 大尺寸卷积核能够捕获更大的上下文信息&#xff0c;拥有更广的感受野。它可以一次性处理更大区域的特征信息&#xff0c;尤其在处理复杂的视觉…

诚邀见证2024九章云极DataCanvas算力包产品发布会!

算力&#xff0c;是驱动全球智能化升级的关键力量&#xff0c;也是智算经济腾飞的主要燃料。 在智算经济腾起之际&#xff0c;我们洞察未来:算力不仅是生产力还将作为社会性普惠AI资源。我们思考未来:算力产品和模式需要何种创新才能够加速算力普惠的进程?我们定义未来:用单位…

react学习笔记一:react介绍

将view规划成一个个的组件&#xff0c;是一个响应式的声明式的设计。 虚拟dom&#xff0c;减少dom操作。vue的虚拟dom是在react的基础上拓展来的。 单向数据流&#xff1a;是一种数据流动的模式。数据流的方向是有上到下的&#xff0c;在react中主要是从父组件流向子组件。 …

Python基础(九)——正则表达式

6.正则表达式 &#xff08;1&#xff09;基础匹配 使用re模块 match方法&#xff1a; re.match(匹配规则&#xff0c;被匹配字符串) 从被匹配字符串开头进行匹配&#xff0c;成功则返回匹配对象包含的信息&#xff0c;失败则返回None。 s "today is a beautiful da…

计算机毕业设计 基于SpringBoot框架的网上蛋糕销售系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

【微处理器系统原理与应用设计第十三讲】通用同/异步收发器USART轮询模式应用设计

USART提供两设备之间的串行双工通信&#xff0c;并支持中断和DMA工作。采用轮询、中断和DMA三种方式进行数据收发。 一、功能需求 实现远程串行通信数据的回传确认。微处理器系统构成的测控设备通过USART&#xff08;串口&#xff09;与用户设备&#xff08;上位机&#xff0…

canvas和svg的区别是什么?它们的应用场景是什么?

区别 绘图方式&#xff1a; Canvas 使用JavaScript API在画布上绘制像素来创建图形&#xff0c;提供了对像素级别的控制&#xff0c;可以实现复杂的图形和动画效果1。SVG 使用XML语法描述图形&#xff0c;是一种基于矢量路径的矢量图形格式&#xff0c;可以无损缩放而不失真1。…

人工智能与机器学习原理精解【21】

文章目录 SVM求两线段上距离最近的两个点问题描述&#xff1a;距离函数&#xff1a;解法&#xff1a;具体步骤&#xff1a;特别注意&#xff1a;示例代码 SVM思想的介入1. **SVM 的基本思想**超平面&#xff1a; 2. **分类间隔&#xff08;Margin&#xff09;**1. **分类间隔的…