upload-labs关卡6(基于黑名单的大小写绕过)通关思路

文章目录

  • 前言
  • 一、回顾靶场第五关
  • 二、靶场第六关需要了解的知识点
    • 1、window系统大小写不敏感
    • 2、linux系统大小写敏感
  • 三、靶场第六关通关思路
    • 1.看源代码
    • 2.通过bp进行大小写绕过
  • 总结


前言

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


一、回顾靶场第五关

第五关是通过利用win系统命名文件后缀名的特性来绕过黑名单达到绕过。像1.php.文件是可以成功上传到服务器的,而且被window系统命名为1.php文件

二、靶场第六关需要了解的知识点

为什么会有大小写绕过呢,是因为程序员在过滤敏感文件后缀名的时候没有特意过滤大小写,然后window系统特性又是不区分大小写的即1.Php文件也是1.php文件。注意Linux系统是对大小写敏感的,1.Php和1.php是两个不同的文件。
这里我们可以示范一下

1、window系统大小写不敏感

先创建一个1.txt文件
在这里插入图片描述
然后重命名为1.Txt然后报存会发现文件依旧是1.txt文件。
我们在cmd也可以测试
首先创建一个1.txt文件内容为123
在这里插入图片描述
在这里插入图片描述
然后在创建1.Txt文件内容为66666
在这里插入图片描述
在这里插入图片描述
会发现并没有1.Txt文件生成,而66666出现在了1.txt文件中。这也是能看出window系统对大小写不敏感

2、linux系统大小写敏感

同样在linux创建一个1.txt文件和1.Txt文件,内容分别为123和456,看看会怎么样(如图所示)
我们先创建一个新的txt文件夹便于实验。
在这里插入图片描述
先在1.txt文件写入123,然后再在1.Txt文件写入456,如果Linux对大小写不敏感的话,那么呈现的应该就是只有一个1.txt文件,并且内容是123456
在这里插入图片描述
实验发现是创建了两个不同的文件,内容分别是123和456。所以可见linux系统对大小写是敏感的。

三、靶场第六关通关思路

  • 1.看源代码
  • 2.通过bp进行大小写绕过

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 = 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.'/'.date("YmdHis").rand(1000,9999).$file_ext;
            if (move_uploaded_file($temp_file, $img_path)) {
                $is_upload = true;
            } else {
                $msg = '上传出错!';
            }
        } else {
            $msg = '此文件类型不允许上传!';
        }
    } else {
        $msg = UPLOAD_PATH . '文件夹不存在,请手工创建!';
    }
}

细心发现此关同上一关不同的地方就是它没有过滤大小写,刚好我的服务器是win系统,所以可以进行大小写绕过。

2.通过bp进行大小写绕过

抓包然后修改文件后缀名为1.Php。如果是Linux系统为攻击机,那么也可以直接建一个1.Php文件直接上传就行。
在这里插入图片描述
把1.php文件改为1.Php文件然后发包,发现文件成功上传。
在这里插入图片描述
发现上传成功,如果是上传一句话木马就可以连接菜刀了。


总结

这一关是利用win特性,还有没有过滤大小写来进行绕过。此文章是小白自己为了巩固文件上传漏洞而写的,大佬路过请多指教!

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

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

相关文章

大数据-之LibrA数据库系统告警处理(ALM-12041 关键文件权限异常)

告警解释 系统每隔一个小时检查一次系统中关键目录或者文件权限、用户、用户组是否正常,如果不正常,则上报故障告警。 当检查到权限等均正常,则告警恢复。 告警属性 告警ID 告警级别 可自动清除 12041 严重 是 告警参数 参数名称 …

【ATTCK】MITRE Caldera-插件

CALDERA是一个由python语言编写的红蓝对抗工具(攻击模拟工具)。它是MITRE公司发起的一个研究项目,该工具的攻击流程是建立在ATT&CK攻击行为模型和知识库之上的,能够较真实地APT攻击行为模式。 通过CALDERA工具,安全…

初始MySQL(二)(表的增删查改)

目录 修改表 CRUD(增删改查) insert语句(表中增加数据) update语句(修改表中的数据) delete删除语句 select语句 修改表 添加列 ALTER TABLE tablename ADD (column datatype [DEFAULT expr] [, column datatype] ...); 修改列 ALTER TABLE tablename MODIFY (column …

【杂记】WinServer 2019解决net3.5无法安装问题

1. 问题描述 由于QA环境中的OSCE V16服务端是部署在虚拟机Windows Server 2019上,当进行数据库的迁移操作时,操作系统会提示缺少.NET Framework 3.5组件(SQL Server数据库系统的运行需要依靠.NET Framework 3.5,但是Windows Server2019默认情…

VINS-Mono-后端优化 (四:边缘化原理)

滑窗中固定只能有11帧,当来了新的帧的时候旧的帧就需要抹掉,但是不能直接把旧的帧的全部信息抹掉,因为旧的帧的经历过11次优化,其地图点中的优化信息是有用,边缘化的操作就是为了只把最旧帧的变量去掉,但是…

iManager云套件支持配置kingbase

作者 yangjunlin 前言 越来越多的涉密单位对于信创环境的要求逐渐升高,服务应用对国产数据库的依赖性也在提高,针对超图iManager for k8s产品中的开源数据库替换为kingbase等国产化数据库的客户需求和场景也就随之而来,因此本文将带着读者一步…

【springboot】Failed to start bean ‘webServerStartStop‘;

新同事新建了一个项目springboot项目,启动时候报错。 具体错误如下: Failed to start bean webServerStartStop; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat server 未能启动bea…

离散时间系统模型

离散时间系统模型 离散时间系统模型是表示数字滤波器的方案。MATLAB 科学计算环境支持若干种离散时间系统模型,这些模型将在以下章节中介绍: ​传递函数零极点增益状态空间部分分式展开式(残差形式)二阶节 (SOS)格型结构体卷积矩…

SpringBoot配置文件 —— 超详细全方位教程

🧸欢迎来到dream_ready的博客,📜相信您也对这篇博客也感兴趣o (ˉ▽ˉ;) 🧸祝诸君前程似锦,归来仍初心不忘! 📜Spring,SpringBoot和SpringMVC的关系以及区别 —— 超准确…

Windows电脑训练 RT-DETR 改进算法 (Ultralytics) 教程,改进RTDETR算法(包括使用训练、验证、推理教程)

手把手从零开始训练 RT-DETR 改进项目 (Ultralytics版本) 教程,改进RTDETR算法 本文以Windows服务器为例:从零开始使用Windows训练 RT-DETR 算法项目 《芒果剑指 RT-DETR 目标检测算法 改进》 适用于芒果专栏改进RT-DETR算法 文章目录 百度 RT-DETR 算法介绍改进网络代码汇…

MySQL:语法速查手册【更新中...】

一、定义基本表 1、常用的完整性约束 主码约束 primary key外键约束 foreign key唯一性约束 unique非空性约束 not null取值约束 check2、例题 【例1】建立一个“学生”表Student,由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成。其中…

8个月过去了,中国大模型落地进展如何?

就目前来看,大模型落地金融、能源行业先行,智能客服等生成类应用大于决策类应用,落地价值不及预期。然而随着行业定制化、模型轻量级化和数据安全化等技术的发展,AI大模型的落地应用将迎来更加广阔的发展空间。 作者|斗斗 编辑…

CPS:实现销售和广告的完美结合

随着互联网的快速发展,电商行业呈现出爆炸性的增长。在这个充满竞争的市场中,如何有效地吸引和引导消费者购买产品,成为电商企业成功的关键。而CPS(Cost Per Sales)作为一种创新的广告模式,正逐渐成为电商行…

关于pip basicsr,facexlib,realesrgan et al.安装报错。

首先basicsr是一个超分的库,在ubuntu系统上pip时会报错。 上图这种错误,或者其他的错误,有的方法让去github上安装,那种方法到setup.py的时候也会报错。 问题在于首先 -i的源要换成阿里的源,然后要安装他要求的库&…

ds前后台博客系统

源码私信或者公众号java大师获取 博客简介:本博客采用Spring Boot LayUI做为基础,进行的博客系统开发,与bootvue相比,更为适合开发简单的系统,并且更容易上手,简单!高效!更易上手&a…

【Java】集合(一)单列集合List

1.集合 可以动态保存任意多个对象,并提供了一系列的操作对象的方法:add、remove、set、get等。 2.集合框架体系 分为两大类: 单列集合和双列集合 3.List接口基本介绍 List接口是Collection接口的子接口 List集合类中元素有序&#xff0…

使用 `open-uri.with_proxy` 方法打开网页

Ruby 爬虫程序如下: require open-uri require nokogiri# 定义代理信息 proxy_host jshk.com.cn# 定义要爬取的网页 URL url http://www.example.com# 使用代理信息打开网页 open-uri.with_proxy(proxy_host, proxy_port) do |proxy|# 使用 Nokogiri 库解析网页内…

mysql主从复制和读写分离

什么叫主从复制? 主从复制架构图和数据流向 主MySQL上的数据、新增、修改库、表、表里的数据。都会同步到从MySQL上 面试题:MySQL的主从复制模式 1、 异步复制:MySQL的默认复制就是异步复制。工作中也一般使用异步复制。只要执行完之后&am…

excel记录wFm数值(推理过程)

1 导入计算wfm库2 实例化具体的指标 3 列表循环之前,设置空list 4 单图评测-将图号、图片名、数值记录 列表里面存储dict 5 将excel列表结果逐个存入excel.xlsx文件 完整代码 test_CPD.py ### test_CPD.py ### import torch import torch.nn.functional as Fimpor…

Autosar模块介绍:FEE(Flash模拟EEPROM)

上一篇 | 返回主目录 | 下一篇 Autosar模块介绍:FEE(Flash模拟EEPROM 1 基本术语解释2 Ea组成结构图3 Ea基本操作3.1 通用操作3.2 作业的进程(通用需求)3.3 读操作过程3.4 写操作过程3.5 擦除过程3.6 比较过程 4 Ea常用操作时序4.1 初始化4.…