pkav之当php懈垢windows通用上传缺陷

环境:

Windows+nginx+php

一、php源码

<?php
//U-Mail demo ...
if(isset($_POST['submit'])){$filename = $_POST['filename'];$filename = preg_replace("/[^\w]/i", "", $filename);$upfile = $_FILES['file']['name'];$upfile = str_replace(';',"",$upfile);$upfile = preg_replace("/[^(\w|\:|\$|\.|\<|\>)]/i", "", $upfile);$tempfile = $_FILES['file']['tmp_name'];$ext = trim(get_extension($upfile)); // nullif(in_array($ext,array('php','php3','php5'))){die('Warning ! File type error..');}if($ext == 'asp' or $ext == 'asa' or $ext == 'cer' or $ext == 'cdx' or $ext == 'aspx' or $ext == 'htaccess') $ext = 'file';//$savefile = 'upload/'.$upfile;$savefile = 'upload/'.$filename.".".$ext;if(move_uploaded_file($tempfile,$savefile)){die('Success upload..path :'.$savefile);}else{die('Upload failed..');}
}
function get_extension($file){return strtolower(substr($file, strrpos($file, '.')+1));
}
?>

前端源码:

<html><body><form method="post" action="upfile.php" enctype="multipart/form-data"><input type="file" name="file" value=""/><input type="hidden" name="filename" value="file"/><input type="submit" name="submit" value="upload"/></form></body>
</html>

二、分析源码

三、那我先随便上传一个

无法上传:

 

在Windows+php+nginx下有特性:

双引号等于点

大于符号等于问号

小于符号等于星号 

因为我们经常了解的%00截断,在Windows里面还有一个111.php:jpg上传的话从jpg处会截断但是我们的php文件为空,而我们可以利用上面所说的特性对其进行覆盖

理论形成实践开始

很明显上传上来了但是没有值

 那我们就可以利用小于号代表星号,星号又代表所有,上传一个空白的php文件

顺利覆盖掉了

 

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

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

相关文章

清华把大模型用于城市规划,回龙观和大红门地区成研究对象

引言&#xff1a;参与式城市规划的新篇章 随着城市化的不断推进&#xff0c;传统的城市规划方法面临着越来越多的挑战。这些方法往往需要大量的时间和人力&#xff0c;且严重依赖于经验丰富的城市规划师。为了应对这些挑战&#xff0c;参与式城市规划应运而生&#xff0c;它强…

【文献阅读】A Fourier-based Framework for Domain Generalization(基于傅立叶的领域泛化框架)

原文地址&#xff1a;https://arxiv.org/abs/2105.11120 摘要 现代深度神经网络在测试数据和训练数据的不同分布下进行评估时&#xff0c;存在性能下降的问题。领域泛化旨在通过从多个源领域学习可转移的知识&#xff0c;从而泛化到未知的目标领域&#xff0c;从而解决这一问…

面试复盘记录(数据开发)

一、apple外包1.矩阵顺时针旋转遍历2.两表取差集 二、 一、apple外包 没问理论&#xff0c;就两个算法题。 1.矩阵顺时针旋转遍历 Given an m x n matrix, return all elements of the matrix in spiral order.Example 1:Input: matrix [[1,2,3],[4,5,6],[7,8,9]] Output: …

【LeetCode热题100】141. 环形链表(链表)

一.题目要求 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置…

基于FPGA的图像锐化算法(USM)设计

免费获取源码请关注微信号《FPGA学习笔记册》&#xff01; 1.图像锐化算法说明 图像锐化算法在实际的图像处理应用很广泛&#xff0c;例如&#xff1a;医学成像、工业检测和军事领域等&#xff1b;它的作用就是将模糊的图像变的更加清晰。常用的图像锐化算法有拉普拉斯算子、s…

基于SpringCache实现数据缓存

SpringCache SpringCache是一个框架实现了基本注解的缓存功能,只需要简单的添加一个EnableCaching 注解就能实现缓存功能 SpringCache框架只是提供了一层抽象,底层可以切换CacheManager接口的不同实现类即使用不同的缓存技术,默认的实现是ConcurrentMapCacheManagerConcurren…

SpringBoot(Lombok + Spring Initailizr + yaml)

1.Lombok 1.基本介绍 2.应用实例 1.pom.xml 引入Lombok&#xff0c;使用版本仲裁 <!--导入springboot父工程--><parent><artifactId>spring-boot-starter-parent</artifactId><groupId>org.springframework.boot</groupId><version&g…

wy的leetcode刷题记录_Day86

wy的leetcode刷题记录_Day86 声明 本文章的所有题目信息都来源于leetcode 如有侵权请联系我删掉! 时间&#xff1a;2024-3-13 前言 目录 wy的leetcode刷题记录_Day86声明前言2864. 最大二进制奇数题目介绍思路代码收获 3. 无重复字符的最长子串题目介绍思路代码收获 438. 找…

Vite为什么比Webpack快

本文作者为 360 奇舞团前端开发工程师 一.引言 Vite和Webpack作为两个主流的前端构建工具&#xff0c;在近年来备受关注。它们的出现使得前端开发变得更加高效和便捷。然而&#xff0c;随着前端项目规模的不断增大和复杂度的提升&#xff0c;构建工具的性能优化也成为了开发者关…

【Mac】鼠标控制\移动\调整窗口大小BBT|边缘触发调整音量\切换桌面

一直在 win 习惯了通过鼠标的侧键来控制窗口的位置、大小&#xff0c;现在找到心的解决方案了&#xff0c;通过 BBT 设置侧键按下\抬起几颗。 以下解决方案的截图&#xff0c;其中还包括了其他操作优化方案&#xff1b; 滚轮配合 cmd 键调节页面大小&#xff1b;配合 option 键…

Docker拉取镜像存储不足

在使用Docker时&#xff0c;我们经常遇到一个问题&#xff0c;就是拉取镜像时提示存储空间不足。这是因为Docker在拉取镜像时需要将镜像文件下载到本地存储中&#xff0c;而有时本地存储空间不足以容纳完整的镜像文件。 本文将介绍一些解决这个问题的方法&#xff0c;并提供相…

简单理解NAT模式和桥接模式

目录 桥接模式NAT模式总结 桥接模式 1.桥接模式下 当物理机X创建了一台或多台虚拟机 那么这些创建出来的虚拟机 可以视作一台独立的新机器 加入了该局域网 并允许和该局域网的物理机或者其他虚拟机直接通信 2.问题一在于 C类网的分配是有范围的(0-255) 假如是一个教室里的局域…