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

七、文件包含漏洞

一、文件包含漏洞

解释:文件包含漏洞是一种注入型漏洞,其本质就是输入一段用户能够控制的脚本或者代码,并让服务端执行;其还能够使得服务器上的源代码被读取,在PHP里面我们把可重复使用的函数写入到单个文件中,在使用该函数时,直接调用此文件,而无需再次编写函数,这一过程叫做包含

1.PHP常用文件包含函数

  1. require():找不到被包含的文件会产生致命错误,并停止脚本运行
  2. include():找不到被包含的文件只会产生警告,脚本继续执行
  3. require_once()与require()类似:唯一的区别是如果该文件的代码已经被包含,则不会再次包含
  4. include_once()与include()类似:唯一的区别是如果该文件的代码已经被包含,则不会再次包含

2.文件包含之任意文件转为PHP执行

解释:在php里面include函数,在执行的时候,如果可以将被包含文件里面的内容当做php代码执行,也就是说,比如include包含了一个png文件,但是里面写的都是php代码,这个php就会被执行,这样很容易造成一句话木马的上传

例如:
在这里插入图片描述
解释:从上图文件可知道,page对应include加载的文件,a文件内容如下,其并非php后缀文件但是却被当作php执行了

<?php
echo 'odwadawdwak';
?>

3.远程文件包含

解释:当php配置项allow_url_includeallow_url_fopen状态为ON的话,则include/require函数是可以加载远程文件,远程文件->其它服务器上的php文件,这种设置如果代码存在文件包含漏洞可能会造成致命的威胁

4.伪协议

解释:PHP内置了很多伪协议,其可能会造成任意文件读取,执行任意命令等问题

文章在此:二、PHP伪协议


http://www.kler.cn/news/133610.html

相关文章:

  • Excel查询时用vlookup或者xlookup时,虽然用的参数选择的是精确匹配,但是发现不能区分大小写,应该如何解决?
  • 【C/PTA】数组进阶练习(三)
  • 系列七、JVM的内存结构【堆(Heap)】
  • 【Rust】6、练习:自己实现 ls
  • 【STM32】ADC(模拟/数字转换)
  • JVM:字节码文件,类的生命周期,类加载器
  • wpf devexpress 创建布局
  • 蓝桥杯第三周算法竞赛D题E题
  • Android studio访问选程https接口(.crt handshake)
  • 一文了解ChatGPT Plus如何完成论文写作和AI绘图
  • rust内存优化
  • .NET CLR介绍
  • 处理多个axios请求
  • Hive 定义变量 变量赋值 引用变量
  • centos 安装 docker
  • echarts双轴刻度线y轴刻度线对齐
  • 支持4KHz回报还能无线充电,简约不简单的雷柏VT3S游戏鼠标上手
  • Mongodb 副本集名称重命名
  • Vue3 动态设置 ref
  • 2018年五一杯数学建模C题江苏省本科教育质量综合评价解题全过程文档及程序
  • 使用html2canvas转换table为图片时合并单元格rowspan失效,无边框显示问题解决(React实现)
  • python从基础到UnitTest框架-python基础语法
  • iOS_折叠展开 FoldTextView
  • 手机LiDAR-based激光雷达标定板提高无人汽车智能化程度
  • Nas搭建webdav服务器并同步Zotero科研文献
  • 持续集成部署-k8s-配置与存储-配置管理:SubPath
  • 新版JetBrains ToolBox【Windows】修改应用安装位置
  • Node.js之path路径模块
  • ubuntu22.04换源
  • NSSCTF第13页(2)