Remote Local File Inclusion (RFI/LFI)-文件包含漏洞

news2024/9/29 17:41:18

在Web应用开发过程中,程序开发者经常会把具有某一功能的部分代码封装起来形成独立的文件,在后续想实现该功能时,就不需要重复编写,直接调用文件,大大提高编程效率。这种调用文件的过程一般被称为文件包含。开发人员为了使代码更灵活,会将被包含的文件设置为变量,用来进行动态调用。如果该变量的值被攻击者控制,就可能发生文件包含攻击。

什么是文件包含攻击?

文件包含攻击,是指攻击者利用文件包含函数的参数引入文件,而Web应用又没有对该参数进行严格的过滤,导致引入文件中的恶意脚本或代码被解析、执行,攻击者获取服务器信息,甚至获取服务器权限。在PHP开发的Web应用中,脚本、图片、文本文档等被文件包含后,都会作为PHP脚本来解析

PHP语言的4个文件包含函数

PHP编程语言中有4个用于文件包含的函数,这些函数包含一个文件时,不管文件是什么类型、扩展名是什么,文件中的PHP代码都会被执行。include()函数,包含并运行指定的文件,在发生错误时仅产生警告,代码继续向下运行;include_once()函数,与include()函数类似,但是使用该函数时,会先检查文件是否已经被包含,如果已经被包含,则不会再次包含;require()函数,包含并运行指定的文件,在发生错误时报错,代码运行终止;require_once()函数,与require()函数类似,但是不会重复包含。

// if( count( $_GET ) )
if( isset( $file ) )
	include( $file );
else {
	header( 'Location:?page=include.php' );
	exit;
}

文件包含功能可以使开发人员在一个代码文件中直接包含(引入)另外一个代码文件,从而让代码更加高效。但是,如果被包含的文件是一个变量,且这个变量可以由前端用户传进来,那么可能会引发文件包含漏洞。攻击者会指定一个“意想不到”的文件让包含函数去执行,从而造成恶意操作。

本地文件包含

本地文件包含,是指攻击者利用文件包含漏洞读取本地服务器中的文件,以获取本地服务器的相关信息,或者在一定的条件下执行文件中的脚本。在Windows操作系统中,文件boot.ini可以获取系统的版本;文件php.ini可以获取PHP配置信息;文件my.ini可以获取MySQL配置信息;文件httpd.conf可以获取Apache服务器的配置信息。

在Linux操作系统中,文件/etc/password可以获取用户信息;文件/etc/my.conf可以获取MySQL配置信息;文件/etc/httpd/conf/httpd.conf可以获取Apache服务器的配置信息。

本地文件包含攻击,必须满足2个条件:(1)文件包含函数通过动态变量的方式引入需要包含的本地文件;(2)用户能够控制动态变量的输入

远程文件包含

远程文件包含,是指攻击者在文件包含函数中引入远程服务器中的文件,以执行远程文件中的恶意代码。攻击者可以自定义远程文件的内容,通过远程文件包含漏洞直接执行文件中的脚本,如一句话木马,获取服务器的权限。一般,远程文件包含漏洞造成的危害要远大于本地文件包含漏洞。

远程文件包含攻击,必须满足3个条件:

(1)文件包含函数通过动态变量的方式引入需要包含的远程文件。

(2)用户能够控制动态变量的输入。

(3)PHP配置文件php.ini中allow_url_fopen=on、allow_url_include=on。其中,allow_url_fopen参数定义了是否允许打开URL文件(远程文件);allow_url_include参数定义了是否允许包含URL文件。由于远程文件包含的危害极大,在PHP 5.2版本之后,默认只能包含本地文件,关闭远程文件包含,即allow_url_include=off。

文件包含漏洞分析

进行文件包含攻击时,首先根据页面回显的信息、URL、报错信息等判断是否存在文件包含漏洞。如果可能存在,则构建包含本地或远程文件的路径,获取服务器的敏感信息,甚至服务器的权限。通过本地文件包含漏洞,服务器的关键信息被泄露,致使攻击者利用收集到的信息进行进一步的攻击。通过远程文件包含漏洞,攻击者可以篡改网页、安装后门、控制服务器等,后果非常严重

DVWA

级别low 

  1. 点击file1.php,文件名直接显示在了地址栏 (这种情况会出现文件包含)
  2.  直接修改url中的文件,发

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

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

相关文章

基于LDA的隐式标签协同过滤推荐算法_文勇军

, 王全民等人[14]提出了一种交替奇异值分解算法 (ASVD),即结合协同过滤和隐语义分析的混合推荐 算法。唐泽坤等人[15]融合聚类算法和协同过滤推荐 算法,取得了一定效果。高娜等人[16⁃19]将标签因子 和协同过滤推荐算法结合研究缓解了数据稀疏问题,但这…

2023年【安全生产监管人员】考试报名及安全生产监管人员复审考试

题库来源:安全生产模拟考试一点通公众号小程序 安全生产监管人员考试报名是安全生产模拟考试一点通总题库中生成的一套安全生产监管人员复审考试,安全生产模拟考试一点通上安全生产监管人员作业手机同步练习。2023年【安全生产监管人员】考试报名及安全…

找游戏外包开发游戏,有哪些好处呢?

游戏外包开发是将游戏开发的一部分或全部工作交给专业的外部开发团队或公司完成的做法。这种方法有许多潜在的好处,包括: 降低成本:游戏外包通常可以降低游戏开发成本,因为外包开发公司通常可以提供更具竞争力的价格。这是因为它…

Linux下的文件操作和文件管理

文章目录 应用编程文件操作文件描述符open函数write函数read函数close函数lseek函数文件操作例子 文件管理文件基本知识文件类型文件共享空洞文件错误处理退出程序原子操作fcntl和ioctl截断文件stat函数软链接和硬链接 应用编程 系统调用(system call)是Linux内核提供给应用层…

【软件测试】超细HttpRunner接口自动化框架使用案例,一篇策底打通...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、HttpRunner框架…

Spring Cloud学习:二【详细】

目录 Nacos的配置 Nacos的单机启动 服务注册 Nacos服务分级存储模型 优先访问同集群的服务 根据权重负载均衡 环境隔离Namespace Nacos调用流程 Nacos与Eureka注册对比 Nacos与Eureka的共同点 Nacos与Eureka的区别 Nacos配置管理 统一配置 配置自动刷新 多环境配…

如何用jenkins插件Allure生成自动化测试报告,3分钟看完即会

前言 以前做自动化测试的时候一直用的HTMLTestRunner来生成测试报告,后来也尝试过用Python的PyH模块自己构建测试报告,在后来看到了RobotFramework的测试报告,感觉之前用的测试报告都太简陋,它才是测试报告应该有的样子。也就是在…

gurobi 安装/license激活 记录

前言:花了好久,被嫌弃惹ww,记录一下踩过的坑 至于为何没安装gurobi也能跑一段时间,直到显示需要license激活,还是未解之迷,需要教教。 首先这是官方给的gurobi license激活教程 我们一步步来复现吧&#…

【2023CANN训练营第二季】——通过一份入门级算子开发代码了解Ascend C算子开发流程

本次博客讲解的代码是Gitee代码仓的Ascend C加法算子开发代码,代码地址为: quick-start 打开Add文件,可以看到文件结构如下: 其中add_custom.cpp是算子开发的核心文件,包括了核函数的实现,展示了如何在Asc…

【PG】PostgreSQL客户端认证pg_hba.conf文件

目录 文件格式 连接类型(TYPE) 数据库(database) 用户(user) 连接地址(address) 格式 IPv4 IPv6 字符 主机名 主机名后缀 IP-address/IP-mask auth-method trust reject scram-sha-256 md5 password gss sspi …

图纸管理制度《四》

1、目的 使公司的图纸得到有效的控制,确保生产所用的图纸为最新有效版本,避免因图纸管理不当造成的损失。 2、定义 本制度所述的图纸包括产品总装图、装配图、零件图、工装图纸、检具图纸、包装图纸、工艺流程 3、范围 客户提供的图纸,技…

修改 jquery dialog title

官网: $("#xxx").dialog("option", "title", "xxx").dialog(open);

Pycharm连接远程服务器 导入远程包时本地显示红色解决方法

1、问题描述 使用pycharm工具 进行数据开发任务时,由于使用远程服务器进行开发的,代码在远程服务器上执行,导入远程服务器代码时,在本地数据脚本显示标准为红色,import XXX 显示红色问题。 2、问题分析: 是…

不同设备的请求头信息UserAgent,Headers

一、电脑端 【设备名称】:电脑 Win10 【应用名称】:win10 Edge 【浏览器信息】:名称:(Chrome);版本:(70.0) 【请求头信息】:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Ch…

PS笔记2_钢笔工具的形状和路径

本文目录 前言Step 1 形状的用法:画图Step 2 路径的用法:抠图 前言 当我们在PS中选择钢笔工具时,上方功能栏中可以选择钢笔的功能项,有三种选项:形状,路径和像素。最常用的就是“形状”和“路径”。本博文…

Java 基础面试题,JVM 内存模型?

我们在 Java 岗位的面试题中,大概率会碰到这样一个面试题:请你解释你对 JVM 内存模型的理解。 今天我们就来回答一下这个问题: JDK 11 中的 JVM 内存模型可以分为以下几个部分: 程序计数器(Program Counter&#xff…

html截取最后几个字符

html截取最后几个字符 string str"123abc456"; int i3; 1 取字符串的前i个字符 strstr.Substring(0,i); // or strstr.Remove(i,str.Length-i); 2 去掉字符串的前i个字符: strstr.Remove(0,i); // or strstr.Substring(i); 3 从右边开始取i个字符&…

软件开发最近很吃香,嵌入式建议转行吗?

今日话题,软件开发最近很吃香,嵌入式建议转行吗?软件开发和嵌入式领域各有优势,是否要转行需要综合考虑。嵌入式领域的薪资水平受方向和行业的影响较大。在做出决策前,务必进行充分调研,不要被互联网的繁荣…

浅谈安科瑞无线测温产品在荷兰某配电室项目中的应用

摘要:随着电力工业的发展,对设备的安全性、可靠性要求越来越高。在这种条件下,高压设备的无线测温系统应运而生。这种技术是将内置电池或电流感应和无线发射模块的测温传感器安装于各测温点,由于其体积小,且无需任何接…

华为数通方向HCIP-DataCom H12-831题库(多选题:101-120)

第101题 LSR对收到的标签进行保留,且保留方式有多种,那么以下关于LDP标签保留一自由方式的说法 A、保留邻居发送来的所有标签 B、需要更多的内存和标签空间 C、只保留来自下一跳邻居的标签,丢弃所有非下一跳铃邻居发来的标签 D、节省内存和标签空间 E、当IP路由收敛、下一跳…