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

文件包含 任意文件读取

文件处理漏洞--文件包含 - wizard骑士 - 博客园

1,什么是文件包含

        程序开发人员一般会吧重复使用的函数写道单个文件中,需要使用某个函数时直接调用此文件,无需再次编写,文件调用的过程就是文件包含,所以将包含的文件设置为变量,用来动态调用,但是这种灵活性,导致客户端可以调用一个恶意文件,造成文件包含漏洞 。

      下面的代码通过get获取file的值,并用include包含此文件。

<?phperror_reporting(0);$file = $_GET["file"];include $file;> 

而文件包含除了有include,还能用其他的函数

  • include

    include()在包含的过程中如果出现错误,只产生警告,并且脚本会继续

  • require

    require()在包含的过程中如果出现错误,会生成致命错误,并停止脚本

  • include_once、require_once

    如果文件已包含,则不会包含,以避免函数重复定义,变量重新赋值等问题

  • 在写法上 include('xx')   ====   include 'xx'

2,文件包含漏洞利用

 1,任意文件读取

        当文件包含的文件没有被php标签包裹时,会直接显示包含文件的内容,否子会被先解析为php代码。直接包含本地php文件,只能得到运行后的结果,如果想要得到具体内容可以利用php中的filter伪协议将文件编码成base64后输出。

php://filter/read=convert.base64-encode/resource=xxx
什么是伪协议?

        PHP 伪协议(PHP Pseudo Protocols)是 PHP 提供的一种特殊的协议机制,用于在 PHP 脚本中实现一些特殊的文件操作功能。这些伪协议并不是真正的网络协议,而是 PHP 内部定义的、用于特定用途的协议。它们通常用于处理文件路径、数据流、内存操作等。

这里用到的伪协议就是filter伪协议,后续的文件包含漏洞都与这个伪协议有关。

而这里的使用原理就是将php源码编码输出,这样php代码就不会被执行,再通过base64解码即可获得php源码。

payload中的各种组成部分

 

 2,执行php代码

这里有两种伪协议php://input和data://

两种方式都有条件,它们都需要满足一个条件 allow_url_include=on

data://还需满足另一个条件 allow_url_fopen=on

php://input可以获取POST的数据流,当与包含函数结合时,php://input流会被当做php文件执行,从而导致任意代码执行

data://同样类似于php://input,可以让用户来控制输入流,当它与包含函数结合时,用户输入的data://流会被当做php文件执行。从而导致任意代码执行

这里的input用法简单,只需用post的方法上传要执行的php代码即可。

但data比较吃操作

 

比如需要执行phpinfo函数

php://input (post内容 <?php phpinfo;?>)

data://[<MIME-type>][;charset=<encoding>][;base64],<data>

?file=data://text/plain,<?php phpinfo();?>

?file=data://text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=

 

还可以用zip://伪协议(zlib://和bzip2://)

zip://可以访问压缩包里的文件,当与包含函数结合时,zip://流会被当作php文件执行,从而实现任意代码执行

只需要是zip压缩包即可

条件:allow_url_fopen=off/on、allow_url_include=off/on

zip://[压缩包绝对路径]#[压缩包内文件]

?file=zip.jpg#phpinfo.txt

还有几种利用方法

 

3,做题

[SWPUCTF 2021 新生赛]include

 此题虽说没有任何过滤和保护,而且明确告诉了flag的文件名。如果没学文件包含漏洞利用可能就只有目录遍历找了,但学了文件包含漏洞我们就可以用php://input来执行代码

但是没成功,后面又尝试遍历目录看能不能找到,发现也没有

突然想起来包含php文件会被解析,所以用fliter看下

 [HNCTF 2022 Week1]Interesting_include 

参数中必须包含flag,然后就没有其他的了。 

用fliter伪协议读取 [HNCTF 2022 WEEK2]easy_include

正则表达式过滤了flag,php,data和一些特殊字符 

由于php被过滤(此处正则表达式忽略大小写),所以可以用日志文件包含

可以看到ua头被存储在这个日志文件中

 写这个一定要小心,因为一但写错就删不了了

这个还要注意发送后包含不会立即执行,需要在包含一次 

相关文章:

文件包含 任意文件读取

文件处理漏洞--文件包含 - wizard骑士 - 博客园 1&#xff0c;什么是文件包含 程序开发人员一般会吧重复使用的函数写道单个文件中&#xff0c;需要使用某个函数时直接调用此文件&#xff0c;无需再次编写&#xff0c;文件调用的过程就是文件包含&#xff0c;所以将包含的文件…...

string[字符串中第一个的唯一字符][蓝桥杯]

使用哈希表解决 class Solution { public:int firstUniqChar(string s) {int arr[26];for(int i0;i<s.size();i){arr[s[i]-a];}for(int i0;i<s.size();i){if(arr[s[i]-a]1)return i;}return -1;} };...

sql server限制用户只能访问特定表

一个老系统的sqlserver 数据库需要新建一个用户&#xff0c;并限制这个新用户只能访问指定的几个数据表。 1.夺权 创建用户简单&#xff0c;但是登录用户没有管理权&#xff0c;windows管理员登录用户也没有管理权限&#xff0c;这就需要夺权&#xff0c;在单用户模式下&…...

中级网络工程师知识点2

1.netstat -r:显示路由表信息 netstat -a:显示所有活动的TCP连接数以及计算机正在监听的TCP和UDP端口 netstat -e:显示以太网统计信息 netstat -n:以数字形式显示网络地址和端口号 2.display multicast forwarding-table 命令的作用是查看组播转发表信息。 display multic…...

SQL常用操作大全:复制表、跨库查询、删除重复数据

大家好&#xff0c;欢迎来到程序视点&#xff01;我是你们的老朋友.小二&#xff01; SQL常用操作精华总结 表结构与数据操作 复制表结构&#xff1a; SELECT * INTO b FROM a WHERE 1<>1 (SQL Server专用) SELECT TOP 0 * INTO b FROM a (更通用) 拷贝表数据&#…...

辰鳗科技朱越洋:紧扣时代契机,全力投身能源转型战略赛道

国家能源局于4月28日出台的《关于促进能源领域民营经济发展若干举措的通知》&#xff08;以下简称《通知》&#xff09;&#xff0c;是继2月民营企业座谈会后深化能源领域市场化改革的关键政策&#xff0c;标志着民营经济在“双碳”目标引领下正式进入能源转型的核心赛道。 自…...

java 破解aspose.words 18.6 使用

资源包&#xff1a;https://download.csdn.net/download/qq_36598111/90787167 jar包是破解过的&#xff0c;直接可以使用。 引入jar&#xff0c;要引入本地的&#xff0c;不要直接引入仓库的 <dependency><groupId>com.aspose</groupId><artifactId>…...

基于鸢尾花(Iris)数据集的分类模型

本文适合初学者入门&#xff0c;涵盖了数据加载、预处理、建模、训练和评估的全过程。 &#x1f3af; 项目目标 使用机器学习算法&#xff08;如K近邻KNN&#xff09;对鸢尾花的品种进行分类。 &#x1f9f0; 所需工具 Python 3.x 安装的库&#xff1a; pip install scikit…...

电容知识小结

1.同样是电容&#xff0c;1uf的陶瓷电容和1uf的铝电解电容是不一样的&#xff1b; 2.实际的电容等效为ESR C ESL;ESR等效电阻和ESL等效电感&#xff1b; 3.铝电解电容&#xff0c;瓷片电容和钽电容。 4.电容是容纳和释放电荷的电子器件&#xff1b; 5.电容的工作&#xff1a;…...

基于springboot+vue的校园部门资料管理系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat12开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;Maven3.3.9 系统展示 系统登录 学生组…...

LeetCode 热题 100 131. 分割回文串

LeetCode 热题 100 | 131. 分割回文串 大家好&#xff0c;今天我们来解决一道经典的回溯算法问题——分割回文串。这道题在 LeetCode 上被标记为中等难度&#xff0c;要求将一个字符串 s 分割成若干个子串&#xff0c;使得每个子串都是回文串&#xff0c;并返回所有可能的分割…...

PostgreSQL 的 pg_start_backup 函数

PostgreSQL 的 pg_start_backup 函数 pg_start_backup 是 PostgreSQL 中用于执行物理备份的关键函数&#xff0c;它通过创建备份模式为数据库文件的一致性备份做准备。以下是该函数的全面解析&#xff1a; 一、函数基础 1. 函数语法 pg_start_backup(label text [, fast bo…...

理解 WKWebView 的 handlesURLScheme: 方法:判断 URL 协议是否由 WebView 默认处理

Overview 在 iOS 开发中&#xff0c;WKWebView 是一个强大的控件&#xff0c;用于在应用内嵌入网页内容。随着 iOS 11.0 的推出&#xff0c;WKWebView 支持自定义 URL 协议处理&#xff0c;这使得开发者可以更灵活地控制网页内的链接请求。今天&#xff0c;我们将详细介绍 han…...

400种行业劳动合同模板

400种行业劳动合同模板 内容介绍 这是一套包含400种行业的专业劳动合同模板合集&#xff0c;涵盖IT、建筑、教育、医疗等多个行业。所有模板均符合最新劳动法规定&#xff0c;可直接下载使用或根据需求修改。 全日制劳动合同 退休返聘协议 劳务合同 劳务&#xff0c;兼职&a…...

MyBatis 动态 SQL 完整笔记

MyBatis 动态 SQL 完整笔记 一、核心动态 SQL 标签与用法 1. 条件控制类标签 <if>&#xff1a;基础条件判断 示例&#xff1a;根据 name 和 age 动态筛选用户 <if test"name ! null and name ! ">AND user_name #{name} </if><choose>/<…...

npm包之serve-favicon

serve-favicon 是一个用于 Node.js 的中间件&#xff0c;它是 Express 框架的一部分。这个中间件的主要作用是提供网站的 favicon&#xff08;网站图标&#xff09;&#xff0c;通常是一个小的图标文件&#xff08;如 .ico&#xff09;&#xff0c;显示在浏览器的标签页、书签栏…...

软件工程(五):设计模式

创建型模式&#xff08;Creational Patterns&#xff09; 关注对象的创建过程&#xff0c;封装创建逻辑&#xff0c;避免代码耦合。 模式名称作用简述单例模式&#xff08;Singleton&#xff09;确保一个类只有一个实例&#xff0c;并提供全局访问点工厂方法模式&#xff08;…...

雷军「去执行化」与小米汽车更名:一场关乎安全与战略的双向奔赴|创客匠人热点评述

一、智驾更名背后的安全觉醒 小米汽车将 SU7 详情页的「智驾」更名为「辅助驾驶」&#xff0c;表面上是监管压力下的措辞调整&#xff0c;实则是一场关乎生命安全的认知革命。当工信部明确要求车企禁用「自动驾驶」「智驾」等易误导词汇&#xff0c;小米的快速响应不仅是对政策…...

python24-匿名函数

课程&#xff1a;B站大学 记录python学习&#xff0c;直到学会基本的爬虫&#xff0c;使用python搭建接口自动化测试就算学会了&#xff0c;在进阶webui自动化&#xff0c;app自动化 匿名函数 匿名函数实践是检验真理的唯一标准 匿名函数 匿名函数是指没有名字的函数&#xff…...

WiseAD:基于视觉-语言模型的知识增强型端到端自动驾驶——论文阅读

《WiseAD: Knowledge Augmented End-to-End Autonomous Driving with Vision-Language Model》2024年12月发表&#xff0c;来自新加坡国立和浙大的论文。 在快速发展的视觉语言模型&#xff08;VLM&#xff09;中&#xff0c;一般人类知识和令人印象深刻的逻辑推理能力的出现&a…...

汽车为什么需要以太网?带宽?实时?

一、传统总线“堵车”&#xff1a;为什么CAN、LIN扛不住了&#xff1f; 1. 带宽危机 案例&#xff1a;一辆L3级自动驾驶汽车每秒产生约4GB数据&#xff08;激光雷达摄像头&#xff09;&#xff0c;而CAN FD总线最高仅8Mbps。若用CAN传输&#xff0c;需 500秒才能传完1秒的数据—…...

人工智能在网络安全中的重要性

介绍 在当今世界,技术比以往任何时候都更加重要。随着物联网 (IoT) 和云计算等新兴技术的广泛应用,海量数据被创建和收集。尽管可以利用数据更好地满足相应的业务需求,但黑客攻击往往会带来巨大的障碍。网络攻击通常是个人或组织蓄意且有组织地试图入侵其他个人或组织的信息…...

【Windows 环境安装ollama,通过ollama拉起大模型】

Windows 环境安装ollama&#xff0c;通过ollama拉起大模型 背景&#xff1a;开始&#xff1a;1.访问ollama官方地址&#xff1a;https://ollama.com/2.下载3.安装ollama4.安装完成5.ollama 官网找到对应版本的大模型6.下载完成后 会自动拉起大模型&#xff0c;进行对话并观察任…...

英语六级---2024.12 卷二 仔细阅读2

文章 Statements, like "beauty is in the eye of the beholder (观看者),” are rarely questioned(51). Theyve become so embedded in our consciousness that people think its absurd to think otherwise. It might be useful, however, to at least push back on t…...

编译原理头歌实验:词法分析程序设计与实现(C语言版)

编译原理头歌实验&#xff1a;词法分析程序设计与实现&#xff08;C语言版&#xff09; 1.实验描述 任务描述 本关任务&#xff1a;加深对词法分析器的工作过程的理解&#xff1b;加强对词法分析方法的掌握&#xff1b;能够采用一种编程语言实现简单的词法分析程序&#xff…...

DeepSeek 赋能金融:从智能分析到高效服务的全链路革新

目录 一、引言二、DeepSeek 技术优势剖析2.1 低成本与高效率2.2 强大的推理能力2.3 开源与可定制性 三、DeepSeek 在金融资讯分析中的应用3.1 实时资讯监测与分析3.2 市场趋势预测 四、DeepSeek 在金融产品介绍文案撰写中的应用4.1 产品特点提炼与呈现4.2 个性化文案生成 五、D…...

IDEA 2024 版本配置热部署

前言 idea 2024.3.3版本配置热部署&#xff0c;实现修改代码验证结果不重启项目服务 步骤 1.在IDEA中settings中搜索Debbger&#xff0c;修改HotSwap 2.编辑启动类的参数&#xff0c;新增实时更新类和资源 3.检查compiler编辑器&#xff0c;是否勾选&#xff1a;build proje…...

LaTeX插入图片

在LaTeX中插入图片的基本代码如下&#xff1a; 1. 单图&#xff1a; \documentclass{article} \usepackage{graphicx} % 插入图片的宏包\begin{document}\begin{figure}[h!]\centering\includegraphics[width0.8\textwidth]{image.png} % 图片路径\caption{这是图片的标题}…...

‌CDGP|数据治理:探索企业数据有序与安全的解决之道

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业宝贵的资产之一。它不仅是企业决策的重要依据&#xff0c;更是推动业务创新、提升竞争力的关键力量。然而&#xff0c;随着数据量的爆炸式增长&#xff0c;如何确保企业数据的使用既有序又安全&#xff0c;成为了摆在许多…...

「Mac畅玩AIGC与多模态25」开发篇21 - 用户画像生成与摘要输出工作流示例

一、概述 本篇聚焦如何通过用户多维输入生成简洁的用户画像摘要&#xff0c;并统一输出格式化描述。开发人员将学习如何收集多项输入变量、通过执行 LLM 节点整合成内容简洁、结构清晰的总结文本&#xff0c;适用于个性化推荐、行为分析与前置用户建模等场景。 二、环境准备 …...

python打卡day19

特征降维------特征筛选 常见的特征筛选算法 方差筛选皮尔逊相关系数筛选lasso筛选树模型重要性shap重要性递归特征消除REF 作业&#xff1a;对心脏病数据集完成特征筛选&#xff0c;对比精度 面对高维特征的时候常常需要引入特征降维&#xff0c;对于某些特征较多的数据&#…...

OpenCV 基于生物视觉模型的工具------模拟人眼视网膜的生物视觉机制类cv::bioinspired::Retina

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 cv::bioinspired::Retina 是 OpenCV 中用于仿生视觉处理的一个类&#xff0c;它基于生物视觉模型进行图像预处理。该算法特别适用于动态范围调整…...

力扣94. 二叉树的中序遍历

94. 二叉树的中序遍历 给定一个二叉树的根节点 root &#xff0c;返回 它的 中序 遍历 。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,3,2]示例 2&#xff1a; 输入&#xff1a;root [] 输出&#xff1a;[]示例 3&#xff1a; 输入&#…...

OpenHarmony平台驱动开发(八),MIPI CSI

OpenHarmony平台驱动开发&#xff08;八&#xff09; MIPI CSI 概述 功能简介 CSI&#xff08;Camera Serial Interface&#xff09;是由MIPI联盟下Camera工作组指定的接口标准。CSI-2是MIPI CSI第二版&#xff0c;主要由应用层、协议层、物理层组成&#xff0c;最大支持4通…...

vue2 结合后端预览pdf 跨域的话就得需要后端来返回 然后前端呈现

<el-button :loading"pdfIslock" v-if"isPDFFile(form.pic)" type"primary" style"margin: 15px 0" click"previewPDF(form.pic)"> 预览pdf </el-button>//npm install pdfjs-dist //如果没有就得先安装import …...

多模态大语言模型arxiv论文略读(六十五)

VS-Assistant: Versatile Surgery Assistant on the Demand of Surgeons ➡️ 论文标题&#xff1a;VS-Assistant: Versatile Surgery Assistant on the Demand of Surgeons ➡️ 论文作者&#xff1a;Zhen Chen, Xingjian Luo, Jinlin Wu, Danny T. M. Chan, Zhen Lei, Jinqi…...

基础编程题目集 6-9 统计个位数字

本题要求实现一个函数&#xff0c;可统计任一整数中某个位数出现的次数。例如-21252中&#xff0c;2出现了3次&#xff0c;则该函数应该返回3。 函数接口定义&#xff1a; int Count_Digit ( const int N, const int D ); 其中N和D都是用户传入的参数。N的值不超过int的范围&…...

Lua从字符串动态构建函数

在 Lua 中&#xff0c;你可以通过 load 或 loadstring&#xff08;Lua 5.1&#xff09;函数从字符串动态构建函数。以下是一个示例&#xff1a; 示例 1&#xff1a;基本动态函数构建 -- 动态构建一个函数 local funcStr "return function(a, b) return a b end"-…...

《零基础学机器学习》学习大纲

《零基础学机器学习》学习大纲 《零基础学机器学习》采用对话体的形式&#xff0c;通过人物对话和故事讲解机器学习知识&#xff0c;使内容生动有趣、通俗易懂&#xff0c;降低了学习门槛&#xff0c;豆瓣高分9.1分&#xff0c;作者权威。 接下来的数篇文章&#xff0c;我将用…...

Vscode (Windows端)免密登录linux集群服务器

由于密码比较长&#xff0c;所以每次用vscode登录集群服务器的时候都要输一遍密码&#xff0c;很烦。因此探索如何不输入密码登录linux集群服务器。 ssh-keygen -t rsa -C "your_emailexample.com"把路径C:\Users\你的用户名.ssh下的id_rsa.pub文件传输到linux服务器…...

stable diffusion的attention-map:提取和可视化跨注意力图

项目&#xff1a; wooyeolbaek/attention-map-diffusers: &#x1f680; Cross attention map tools for huggingface/diffusers 参考&#xff1a;【可视化必备技能&#xff08;1&#xff09;】SD / Flux 文生图模型的 Attention Map 可视化-CSDN博客...

Spark存储级别

存储级别&#xff08;Storage Level&#xff09;详解 Spark的存储级别决定了数据在内存和磁盘中的存储方式&#xff0c;以及是否对数据进行序列化。存储级别主要用于RDD或DataFrame/Dataset的cache()和persist()操作。 存储级别分类 Spark提供了以下几种存储级别&#xff1a…...

MySQL数据库初体验

目录 前言 数据库基础概念 一、数据库的基本概念 二、数据库的类型与适用场景 三、数据库核心模型 四、数据库设计核心原则 五、SQL 语言基础 六、事务与并发控制 七、数据库安全与备份 八、主流数据库系统对比 MySQL服务基础部署 MySQL 的作用与意义 1. ‌核心作用…...

5G + AR:让增强现实真正“实时交互”起来

5G AR&#xff1a;让增强现实真正“实时交互”起来 随着 5G 技术的普及&#xff0c;增强现实&#xff08;AR&#xff09;正迎来一场技术革新。过去&#xff0c;我们的 AR 体验往往受到网络延迟、数据传输瓶颈、计算能力不足等限制&#xff0c;但如今&#xff0c;5G 的超低延迟…...

Oracle EBS AP发票被预付款核算创建会计科目时间超长

背景 由于客户职能部门的水电、通信和物业等等费用统一管理或对接部门报销费,在报销费的时候,用户把所有费用分摊到各个末级部门,形成AP发票行有上千行, 问题症状 1、用户过账时,请求创建会计科目一直执行20多个小时未完成,只能手工强行取消请求。 2、取消请求以后,从后…...

【嵌入式开发-SDIO】

嵌入式开发--SDIO ■ SDIO-简介■■■■■ ■ SDIO-简介 SDIO(Secure Digital Input and Output)&#xff0c;即安全数字输入输出接口。它是在SD卡接口的基础上发展而来&#xff0c;它可以兼容之前的SD卡&#xff0c;并可以连接SDIO接口设备&#xff0c;比如&#xff1a;蓝牙、…...

智能边缘计算系统:基于Python的创新应用

智能边缘计算系统:基于Python的创新应用 本文深入探讨了基于Python开发的智能边缘计算系统,该系统通过融合深度学习框架(例如TensorFlow或PyTorch)与边缘计算技术,在诸如树莓派等边缘设备上成功部署了轻量级的深度学习模型,有效解决了传统云计算模式在物联网应用中面临的…...

前端面经--网络通信与后端协作篇--XMLHttpRequest、axios、fetch、AbortController

一、XMLHttpRequest 1、什么是 XMLHttpRequest&#xff1f; XMLHttpRequest&#xff08;简称 XHR&#xff09;是浏览器提供的一个异步通信接口&#xff0c;允许网页在不刷新页面的情况下&#xff0c;与服务器交换数据。 它是AJAX&#xff08;Asynchronous JavaScript and XML&…...

缓存套餐-03.功能测试

一.功能测试 点击小程序&#xff0c;就会触发根据分类id查询套餐方法&#xff0c;根据分类id查询套餐。 第一次查询&#xff0c;redis中没有数据&#xff0c;就会发sql进行sql数据库查询。 redis当中就有了对应的缓存。 再次点击&#xff0c;发现sql根本没有执行&#xff0c;…...

Django进阶:用户认证、REST API与Celery异步任务全解析

前言 在掌握了Django基础开发后&#xff0c;如何构建更强大、更专业的Web应用&#xff1f;本文将带你深入Django的三大高级特性&#xff1a;allauth用户认证系统、DRF&#xff08;Django REST framework&#xff09;API开发&#xff0c;以及Celery异步任务处理。这些技术栈是构…...