文件包含漏洞基础

php 中的文件包含函数:
incude
require
incude_once
require_once
为了减少重复性代码的编写;
任意后缀的文件当中只要存在 php 代码就会被当作 php 执行;
本质:由于包含的文件不可控,导致文件包含漏洞的产生
文件包含漏洞常见于 CTF
分类:
①本地文件包含 LFI local file include
包含的代码需要满足 php 的语法规范,无配置文件要求
②远程文件包含 RFI(remote file include)
php 是否开启远程文件包含,受 allow_url_include=off (默认配置),在 php.ini 文件中
该漏洞的前提条件 allow_url_include=on
windows 中路径位置
linux
文件位置
文件内容可通过 vim 配和 / 快速搜索
改完之后需重启 apache 服务
当靶机没有红色证明修改配置成功,既 fi_remote.php 不报红
实验:
在物理机中设置一个 1.txt 文件
文件内容如下:
<?php
phpinfo();
?>
通过虚拟机中的 pikachu 容器去访问该文件
访问成功之后,结果如下,
也可将命令替换为任意文件操作,此时打开虚拟机检测目录是否存在
<?php
system( 'mkdir 666' );
//phpinfo();
?>
如果本机访问正常,容器无法访问物理机 web 服务可选择关闭防火墙(最方便)
或修改网络状态为专用网络
目录穿越 & 文件包含
由于用户输入可控,且后端代码未限制访问文件的路径,可拼接任意路径访问任意文件
../../../../../../../../../../../../../../../../../../../etc/passwd
伪协议在文件包含中的应用
如果后台代码中存在指定路径的情况,协议的使用会受限
file:// 文件路径
php://fliter/
常用
convert.base64-encode/resource (读取 php 代码, php 文件通过包含会直接加载执行)
read=string.rot13/resource ()
等等。。。。。
编码转换较好用,可最大限度规避检测
php://input 接收 post 传参数据
受配置
allow_url_open
allow_url_include
影响
data://text/plain, 数据
data://text/plain;base64, 编码后的数据( base64 编码后)
注: get 请求中 + 会变成空格,故需要使用 url 编码处理 +

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

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

相关文章

07节-51单片机-矩阵键盘

文章目录 1矩阵键盘原理2.扫描的概念3.弱上拉4.实战-实现矩阵键盘对应按钮按下显示对应值4.1配置代码模板 5.键盘锁 1矩阵键盘原理 在键盘中按键数量较多时&#xff0c;为了减少I/O口的占用&#xff0c;通常将按键排列成矩阵形式 采用逐行或逐列的“扫描”&#xff0c;就可以读…

深浅拷贝及其现代写法

#include<iostream> using namespace std; class Person { public://默认构造Person(){cout << "Person()" << endl;}//有参构造函数Person(int age,int height){m_age age;m_height new int(height);cout << "Person(int age, int h…

【ZYNQ】zynq启动模式及程序固化

一、前言 由于zynq含有arm cpu ,其启动模式由ps主导&#xff0c;与纯逻辑的fpga不相同&#xff0c;此处做一个记录。 二、zynq启动模式 关于zynq的启动模式详细内容可以参考官方文档&#xff1a;ug585-Zynq 7000 SoC Technical Reference Manual&#xff0c;第六章。 2.1 启…

12(第十一章,数据仓库和商务智能)

目录 概述 目标和原则 基本概念 商务智能 数据仓库 数据仓库建设方法 数据仓库架构组件 加载处理方式 1、历史数据 2、批量变更数据捕获&#xff08;CDC&#xff09; 3、准实时和实时数据加载 活动 运营分析应用 方法 数据仓库构建 架构演进 数据处理过程 数…

Nacos分布式配置中心和服务注册中心

分布式配置中心 Nacos Spring Cloud 快速开始 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation&qu…

第一届长城杯半决赛wp和AWD笔记

目录 AWD 渗透 cfs 单节点1 AWD笔记 AWD工具 文件比较工具 Web漏洞扫描工具 waf工具 代码审计工具 批量网站备份文件泄露扫描工具 cms通杀漏洞的利用 通杀脚本和批量提交flag脚本 防御流程 攻击流程 注意 AWD 解题思路] 首先就是fscan快速扫描对应C段&#xf…

递归基础-汉诺塔(仅用于复习和交流)

观察上图发现&#xff0c;从N2开始图形都按一定的规律步骤进行位置移动&#xff0c;这个观点是否认同&#xff1f; 那再看N2时&#xff0c;为了方便大家理解&#xff0c;将两个板定义为板1&#xff08;小&#xff09;&#xff0c;板2&#xff08;大&#xff09;&#xff0c;最上…

leaftjs+turfjs+idw纯前端实现等值面绘图

最近有个绘制等值面图的需求。我们一般的实现路径是&#xff1a; 1.后台绘图&#xff0c;用surfer绘制好&#xff0c;给前端调用叠加到地图。 2.后台用python绘图&#xff0c;绘制好给前端调用&#xff0c;叠加到地图。 3.后台进行插值计算、地图裁剪、最终生成geojson文件或…

【Webgl_glslThreejs】搬运分享shader_飘落心形

来源网站 https://www.shadertoy.com/view/4sccWr效果预览 代码演示 将shadertory上的代码转成了threejs可以直接用的代码&#xff0c;引入文件的material&#xff0c;并在创建mesh或已有物体上使用material即可&#xff0c;使用时请注意uv对齐。 import { DoubleSide, Shad…

Facebook的魅力魔法:探访数字社交的奇妙世界

1. 社交媒体的演变与Facebook的角色 在数字化时代&#xff0c;社交媒体已经成为我们日常生活中不可或缺的一部分。而在众多的社交媒体平台中&#xff0c;Facebook 以其深厚的历史和广泛的影响力&#xff0c;成为了全球数亿用户沟通、分享和互动的主要场所。从其初创之时起&…

微软发布!提示工程进化为位置工程,有效提升RAG与上下文学习

别再光顾着优化提示工程啦&#xff01;微软最近推出位置工程研究思路&#xff0c;只需调整token的索引位置&#xff0c;而不修改文本本身&#xff0c;就能显著提高任务性能。 提示工程通过添加、替换或删除段落和句子改变提示&#xff0c;调整语义信息&#xff0c;激发LLMs的推…

javaWeb项目-校园志愿者管理系统功能介绍

项目关键技术 开发工具&#xff1a;IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架&#xff1a;ssm、Springboot 前端&#xff1a;Vue、ElementUI 关键技术&#xff1a;springboot、SSM、vue、MYSQL、MAVEN 数据库工具&#xff1a;Navicat、SQLyog 1、SpringBoot框架 …

docker容器搭建chatglm2-6b

服务器环境&#xff1a; 显卡驱动&#xff1a;Driver Version: 530.30.02 CUDA版本&#xff1a;CUDA Version: 12.1 显卡&#xff1a;NVIDIA GeForce RTX 3090共4张 注意&#xff1a;最好把显卡驱动升级到530&#xff0c;CUDA版本之前使用11.7有问题。 docker-compose.yml…

Java程序员必须掌握的数据结构:HashMap

HashMap底层原理实现是每个Java Boy必须掌握的基本技能&#xff0c;HashMap也是业务开发每天都需要遇到的好伙伴。如此基础且核心的底层数据结构&#xff0c;JDK也给其赋予了线程安全的功能类&#xff0c;我们来看看~ 文章目录 1. HashMap内部结构1.1 键值的添加流程1.2 红黑树…

DFS和回溯专题:全排列 II

DFS和回溯专题&#xff1a;全排列 II 题目链接: 全排列 II 参考题解 代码随想录 题目描述 代码纯享版 class Solution {public List<List<Integer>> list_all new ArrayList();public List<Integer> list new ArrayList();public int[] res;public Lis…

【笔试训练】day11

1.游游的水果大礼包 思路&#xff1a; 枚举。假设最后的答案是x个a礼包&#xff0c;y个b礼包&#xff0c;得到一个式子&#xff1a;ansa*xb*y 我们可以枚举x的数量&#xff0c;这样就能变相的把y的求出来。呃这就是鸡兔同笼问题嘛 x最大的范围是多少呢&#xff1f;也就是a礼…

竞赛报名赛事管理系统技术分析

竞赛报名赛事管理系统是一个复杂的应用&#xff0c;涉及到用户管理、赛事信息管理、报名管理、成绩管理等多个方面。使用PHP框架来开发这样的系统&#xff0c;可以大大提高开发效率&#xff0c;保证代码的可维护性和可扩展性。以下是对基于PHP框架的竞赛报名赛事管理系统进行功…

网络编程——TCP的特性之自动重传/流量控制/拥塞控制,一篇说清楚

文章目录 1. ARQ自动重传协议1.1 停止等待ARQ1.2 连续ARQ1.3 总结 2. TCP的流量控制3. TCP的拥塞控制3.1 慢开始算法3.2 拥塞避免算法3.3 快重传算法3.4 快恢复算法 1. ARQ自动重传协议 自动重传请求&#xff08;Automatic Repeat-reQuest&#xff09;&#xff0c;通过使用确认…

vivado Versal 串行 I/O 硬件调试流程、使用 Vivado Serial I/O Analyzer 来调试设计

Versal 串行 I/O 硬件调试流程 Versal ™ ACAP 无需再生成 IBERT IP &#xff0c; 因为使用系统内串行 I/O 调试所需的必要逻辑现已集成到 GTY 收发器架构内。使 用 GTY 收发器的任何设计均可用于串行 I/O 硬件调试。 Versal 串行 I/O 硬件调试流程具有 2 个不同阶…

lesson04:类和对象(下)

1. 再谈构造函数 2.static成员 3.友元 4.内部类 5.匿名对象 1. 再谈构造函数 1.1构造函数体内赋值 #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; class Date { public:Date(int year, int month, int day){_year year;_month mont…