upload-labs关卡10(点和空格绕过)通关思路

文章目录

  • 前言
  • 一、回顾前几关知识点
  • 二、靶场第十关通关思路
    • 1、看源代码
    • 2、bp抓包绕过
    • 3、检查文件是否成功上传
  • 总结


前言

此文章只用于学习和反思巩固文件上传漏洞知识,禁止用于做非法攻击。注意靶场是可以练习的平台,不能随意去尚未授权的网站做渗透测试!!!


一、回顾前几关知识点

前几关我们都利用win特性,点、空格、大小写以及data流绕过。这一关也是利用win特性,用点加空格组合绕过,和第五关方法一样。不明白的看我的第四关讲解。

二、靶场第十关通关思路

  • 1、看源代码
  • 2、bp抓包绕过
  • 3、检查文件是否成功上传

1、看源代码

$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {
    if (file_exists(UPLOAD_PATH)) {
        $deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess",".ini");
        $file_name = trim($_FILES['upload_file']['name']);
        $file_name = deldot($file_name);//删除文件名末尾的点
        $file_ext = strrchr($file_name, '.');
        $file_ext = strtolower($file_ext); //转换为小写
        $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
        $file_ext = trim($file_ext); //首尾去空
        
        if (!in_array($file_ext, $deny_ext)) {
            $temp_file = $_FILES['upload_file']['tmp_name'];
            $img_path = UPLOAD_PATH.'/'.$file_name;
            if (move_uploaded_file($temp_file, $img_path)) {
                $is_upload = true;
            } else {
                $msg = '上传出错!';
            }
        } else {
            $msg = '此文件类型不允许上传!';
        }
    } else {
        $msg = UPLOAD_PATH . '文件夹不存在,请手工创建!';
    }
}

从源代码看出,这一次是都验证了,不能用前几关的方法了。但是这一关源代码和第五关差不多。由于删除点和首尾去空这些验证只是一次性,所以我们可以进行点和空格绕过。

2、bp抓包绕过

这里我们上传1.php文件,然后bp抓包修改为1.php. .这里是点+空格+点。
在这里插入图片描述

3、检查文件是否成功上传

在这里插入图片描述
在这里插入图片描述
发现上传成功,如果是上传一句话木马就可以连接菜刀了。如果不懂原理可以看我第四关讲解。

总结

这一关利用后端验证只验证了一次和win特性来绕过。此文章是小白自己为了巩固文件上传漏洞而写的,大佬路过请多指教!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

轻松搭建短域名短链接服务系统,可选权限认证,并自动生成证书认证把nginx的http访问转换为https加密访问,完整步骤和代码

轻松搭建短域名短链接服务系统,可选权限认证,并自动生成证书认证把nginx的http访问转换为https加密访问,完整步骤和代码。 在互联网信息爆炸的时代,网址复杂而冗长,很难在口头告知他人,也难以分享到社交媒体…

快速搭建本地的chatgpt

快速搭建本地的chatgpt 参考:一篇文章教你使用Docker本地化部署Chatgpt(非api,速度非常快!!!)及裸连GPT的方式(告别镜像GPT)-CSDN博客 前提是linux下 已安装docker 命…

基于SpringBoot的SSMP整合案例(消息一致性处理与表现层开发)

消息一致性处理 在后端执行完相应的操作后,我们需要将执行操作后的结果与数据返回前端,前端 调用我们传回去的数据,前端是如何知道我们传回去的数据名称的? 答:前后端遵循了同一个"协议"。这个协议就是定义…

深度学习_14_单层|多层感知机及代码实现

单层感知机: 功能: 能完成二分类问题 问题: 模型训练采用X*W b训练出模型,对数据只进行了一层处理,也就是说训练出来的模型仅是个线性模型,它无法解决XOR问题,所以模型在训练效果上&#xf…

竞赛 题目:基于机器视觉opencv的手势检测 手势识别 算法 - 深度学习 卷积神经网络 opencv python

文章目录 1 简介2 传统机器视觉的手势检测2.1 轮廓检测法2.2 算法结果2.3 整体代码实现2.3.1 算法流程 3 深度学习方法做手势识别3.1 经典的卷积神经网络3.2 YOLO系列3.3 SSD3.4 实现步骤3.4.1 数据集3.4.2 图像预处理3.4.3 构建卷积神经网络结构3.4.4 实验训练过程及结果 3.5 …

torch - 张量Tensor常见的形式

1.Scalar 通常就是一个数值 x tensor(42.) 输出x: 2.Vector 特征向量 例如:[-5., 2., 0.]在深度学习中通常表示特征,如词向量特征,某一维度特征等 3.Matrix 一般计算的都是矩阵,通常都是多维的。 可以做矩阵的…

MySQL优化的底层逻辑

文章目录 前言索引的底层结构数据与索引的关系聚簇索引的数据存储普通索引的数据存储 索引的命中逻辑怎么理解索引失效总结 前言 去年刚开始写博客的时候写了一篇《MySQL性能调优参考》,文章中提到优化的几个技巧,比如数据类型的使用、范式和反范式的合…

CI/CD --git版本控制系统

目录 一、git简介 二、git使用 三、github远程代码仓库 一、git简介 Git特点: 速度简单的设计对非线性开发模式的强力支持(允许成千上万个并行开发的分支)完全分布式有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数…

【C++学习手札】模拟实现vector

🎬慕斯主页:修仙—别有洞天 ♈️今日夜电波:くちなしの言葉—みゆな 0:37━━━━━━️💟──────── 5:28 🔄 ◀️ ⏸ ▶️ ☰…

微信小程序Error: ENOENT: no such file

问题描述 当编译的时候 会提示找不到这个文件(index),但是确信项目目录里已经删除了该页面路径,并且app.json的pages列表中也 导致这个问题应该是:新添加了文件,后面删除了或者修改了文件名,导…

MySQL初始化报错。VCRUNTIME140_1.dll缺失

从自己电脑内搜索此dll,粘贴到服务器的以下位置即可。

电路综合-基于简化实频的集总参数电路匹配3-将任意阻抗用集总参数匹配至归一化阻抗

电路综合-基于简化实频的集总参数电路匹配3-将任意阻抗用集总参数匹配至归一化阻抗 前面的相关理论: 电路综合-基于简化实频的集总参数电路匹配1 电路综合-基于简化实频的集总参数电路匹配2-得出解析解并综合 理论这两个已经介绍过了,直接给出案例 代码…

「Verilog学习笔记」实现3-8译码器①

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 分析 ① 本题要求根据38译码器的功能表实现该电路,同时要求采用基础逻辑门实现,那么就需要将功能表转换为逻辑表达式。 timescale 1ns/1nsmodule d…

Python---练习:编写一段Python代码,生成一个随机的4位验证码

案例:编写一段Python代码,生成一个随机的4位验证码 提前:定义一个字符串 str1 "23456789abcdefghijkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ" 编写Python代码: ① 思考:如果只生成4个字符的验证码&…

黑五来袭,如何利用海外代理进行助力

黑五作为下半年年度尤为重要的一个节日,是各大商家的必争之地,那么海外代理是如何帮助跨境商家做好店铺管理和营销呢? 为什么跨境人都关注海外代理,下面我们来进行介绍。 一、什么是海外代理 海外代理就是我们所说的&#xff1…

锂离子电池充电的系统抖动问题解决方案

前言 在设计锂离子电池充电器时,会因为充电电流波动导致电压波动,系统异常。 所以分析了锂离子电池的特性,给出了几种解决方法。 有纰漏请指出,转载请说明。 学习交流请发邮件 1280253714qq.com 理论 锂电池简单地可看做一…

VBA_MF系列技术资料1-222

MF系列VBA技术资料 为了让广大学员在VBA编程中有切实可行的思路及有效的提高自己的编程技巧,我参考大量的资料,并结合自己的经验总结了这份MF系列VBA技术综合资料,而且开放源码(MF04除外),其中MF01-04属于定…

【算法每日一练]-图论(保姆级教程 篇4(遍历))#传送门 #负环判断 #灾后重建

今天继续 目录 题目:传送门 思路: 题目:负环判断 思路: 题目:灾后重建 思路: 题目:传送 门 思路: 先跑一边floyd,然后依次加入每个传送门,O(n^5)不行…

本地jar导入maven

一、通过dependency引入 1.1. jar包放置&#xff0c;建造lib目录 1.2. pom.xml文件 <dependency><groupId>zip4j</groupId><artifactId>zip4j</artifactId><version>1.3.2</version><!--system&#xff0c;类似provided&#x…

ImportError: DLL load failed while importing _iterative: %1 不是有效的 Win32 应用程序。

问题&#xff1a;这个错误是由于导入的模块 _iterative 找不到有效的 Win32 应用程序导致的。可能是由于你的环境中缺少了某个依赖库或者是版本不匹配的问题。 解决方法&#xff1a; 可以尝试以下几种&#xff1a; 确保你的环境中已经安装了所有需要的依赖库&#xff0c;并且…