漏洞讲解之文件包含

简介: 漏洞讲解之文件包含

一、文件包含漏洞是什么?

通过函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,导致意外的文件泄露甚至恶意的代码注入。

二、 文件包含漏洞有哪几种类型?

本地文件包含漏洞:本地包含顾名思义,就是在网站服务器本身存在恶意文件,然后利用本地文件包含使用。

远程文件包含漏洞:远程文件包含就是调用其他网站的恶意文件进行打开。

三、 php的包含函数

PHP中文件包含函数有以下四种

require()
require_once()
include()
include_once()

include和require区别主要是,include在包含的过程中如果出现错误,会抛出一个警告,程序继续正常运行;而require函数出现错误的时候,会直接报错并退出程序的执行。

include_once(),require_once()这两个函数,与前两个的不同之处在于这两个函数只包含一次,适用于在脚本执行期间同一个文件有可能被包括超过一次的情况下,你想确保它只被包括一次以避免函数重定义,变量重新赋值等问题。

四、 本地包含漏洞

本地包含顾名思义,就是在网站服务器本身存在恶意文件,然后利用本地文件包含使用。本地包含漏洞常被用来读取本地文件,上传包含恶意代码的图片,然后包含执行。

1. 包含恶意代码的文件

创建一个后缀为jpg的文件,内容如图:

640.png 

上传该文件,直接访问,文件并不会执行

640.png 

通过包含漏洞包含该文件后,php代码被执行了

640.png 

2. 读取本地文件

可通过该漏洞读取一些配置文件等敏感文件

/etc/passwd//账户信息
/etc/shadow//账户密码文件
/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相关配置
/etc/httpd/conf/httpd.conf//Apache配置文件
/etc/my.conf // mysql 配置文件

640.png 

五、 远程包含漏洞

远程包含漏洞需要服务器期的服务器的php.ini的配置选项allow_url_fopen和allow_url_include为On,然后在自己的服务器放一个包含恶意代码的文件。

640.png

然后包含这个远程文件,通过文件包含漏洞执行文件内的代码。

 640.png


相关文章
|
监控 Linux 数据安全/隐私保护
IPMI介绍
IPMI简要介绍
8404 0
|
3月前
|
人工智能 程序员 API
别再盲目卷Skills了!大模型时代的工具调用(Tool-Use),正在迎来底层范式革命
本文深度剖析Skills(技能包)的本质:当前人工硬编码的Skills只是弥补大模型执行力不足的过渡性“补丁”,而非Agent终局方案。文章指出其三大痛点——幻觉调用、上下文过载、缺乏自适应,并前瞻性提出四大演进路径:自主习得技能、GUI/OS级原生操作、MCP协议标准化、推理与执行架构融合,揭示Skills将从“人工编写”迈向“智能体自主进化”的必然趋势。
391 0
别再盲目卷Skills了!大模型时代的工具调用(Tool-Use),正在迎来底层范式革命
|
3月前
|
人工智能 运维 安全
主流AI Agent框架对比:Hermes Agent与OpenClaw核心差异与选型指南及部署教程
随着AI智能体技术全面落地,各类开源AI Agent开发框架层出不穷,其中 **Hermes Agent** 与 **OpenClaw** 凭借成熟的架构、丰富的功能、活跃的社区生态,成为2026年个人开发者、初创团队与中小企业最常用的两大主流框架。二者均支持大模型对接、工具调用、自动化任务、多轮会话等核心智能体能力,能够帮助开发者快速搭建生产级AI智能体应用。
490 3
|
6月前
|
SQL 搜索推荐 数据挖掘
检索的终局是决策:OLAP 如何重塑 Hologres 多模混合检索的价值边界
HSAP 2.0是Hologres提出的混合搜索与实时分析架构,首次将全文/向量检索与OLAP能力深度集成,实现“边查边算”。支持一条SQL完成语义匹配、结构化过滤与多维聚合,消除ETL延迟,保障强一致性,让检索系统从信息工具跃升为驱动商业决策的实时洞察引擎。
|
存储 人工智能 5G
6G来了,智能设备会“脱胎换骨”吗?
6G来了,智能设备会“脱胎换骨”吗?
817 4
|
存储 应用服务中间件 nginx
成功解决:nginx: [emerg] unexpected “}“ in /etc/nginx/conf.d/gulimall.conf:10
这篇文章详细介绍了Linux虚拟机磁盘空间不足时的扩容流程,从外部配置到具体扩容操作,再到验证扩容效果的步骤。同时,也探讨了Docker容器磁盘空间耗尽的问题,并提供了解决方案,包括删除无用镜像和容器,以及如何重新配置Docker的存储位置。文章还涵盖了一些意外情况的处理方法,比如误删容器后的恢复策略,并最终展示了使用Docker安装nginx并成功访问的详细过程。
成功解决:nginx: [emerg] unexpected “}“ in /etc/nginx/conf.d/gulimall.conf:10
|
小程序 测试技术 程序员
『软件工程12』软件工程实践方法——软件测试
该文章详细阐述了软件测试的重要性和基本原则,并按测试阶段顺序介绍了单元测试、集成测试、确认测试以及系统测试的具体内容和实施步骤。
『软件工程12』软件工程实践方法——软件测试
|
缓存 Java 测试技术
Java多线程实战-实现多线程文件下载,支持断点续传、日志记录等功能
Java多线程实战-实现多线程文件下载,支持断点续传、日志记录等功能
|
监控 Java API
听我的,日志还是得好好打!
听我的,日志还是得好好打!