当前位置: 首页 > article >正文

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,Deny
    Deny from all
</Files>

 

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

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

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule .(php.|php3.|php5.) /index.php
    RewriteRule .(pHp.|pHp3.|php5.) /index.php
    RewriteRule .(phP.|phP3.|php5.) /index.php
    RewriteRule .(Php.|Php3.|php5.) /index.php
    RewriteRule .(PHp.|PHp3.|php5.) /index.php
    RewriteRule .(PhP.|PhP3.|php5.) /index.php
    RewriteRule .(pHP.|pHP3.|php5.) /index.php
    RewriteRule .(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.kler.cn/a/312224.html

相关文章:

  • 论文阅读《机器人状态估计中的李群》
  • SQL50题
  • 如何在 Ubuntu 16.04 上设置 NFS 挂载
  • 3.2 软件需求:面对过程分析模型
  • HBuilder使用虚拟机
  • 大模型预训练+微调大模型;大模型提示/指令模式”(Prompt/Instruct Mode)
  • 【Git原理与使用】多人协作与开发模型(2)
  • 杀死端口占用的进程
  • 常用函数式接口的使用
  • 3D GS 测试自己的数据
  • react 甘特图之旅
  • C语言 | Leetcode C语言题解之第405题数字转换为十六进制数
  • SpringBoot 数据库表结构文档生成
  • 深入Redis:核心的缓存
  • 【计算机网络 - 基础问题】每日 3 题(十四)
  • 百易云资产系统 house.save.php SQL注入
  • tomcat知识
  • 【Android】ViewPager
  • 生信初学者教程(三):介绍
  • [Linux] 进程优先级 进程的调度与切换 环境变量详解
  • qt--Qml控件库如何从外部导入
  • 虾皮选品技巧有哪些?超全Shopee选品的方法和技巧分享!
  • C#无标题栏窗体拖动
  • 物联网开发+充电桩管理系统+充电桩系统源码
  • 【北京迅为】《STM32MP157开发板使用手册》- 第四十二章 事件实验
  • Java设计模式—面向对象设计原则(四) ----->接口隔离原则(ISP) (完整详解,附有代码+案例)