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.hqwc.cn/news/170746.html

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

相关文章

【SpringBoot】SpringBoot自动配置底层源码解析

概述 EnableAutoConfiguration源码解析SpringBoot常用条件注解源码解析SpringBoot之Mybatis自动配置源码解析SpringBoot之AOP自动配置源码解析SpringBoot Jar包启动过程源码解析 DeferredImportSelector接口 DeferredImportSelector和ImportSelector的区别在于: …

海康Visionmaster-通讯管理:使用 Modbus TCP 通讯 协议与流程交互

使用 Modbus TCP 通讯协议与视觉通讯,当地址为 0000 的保持型寄存器(4x 寄存器)变为 1 时,触发视觉流程执行一次,同时视觉将地址为 0000 的寄存器复位(也即写为 0),视觉流程执行完成后,将结果数…

更安全的ssh协议与Gui图形化界面使用

目录 前言: 一.Gui图形化界面的使用 二.ssh协议 SSH的主要作用包括: 相比其他网络协议,SSH的优势包括: 三.idea集成Git 前言: 上一篇讲解了git的命令用法以及https协议,但是这个协议放在做团队项目的…

win7纯净版没有网卡驱动怎么办(msdn重装的系统)

当电脑重新安装Windows7系统之后,发现无法连接网络的情况,可以找一台能正常上网使用的电脑,打开浏览器软件,搜索“360驱动大师”,下载360驱动大师网卡版到U盘,然后拷贝到自己的win7电脑上安装网卡驱动&…

Leetcode—67.二进制求和【简单】

2023每日刷题&#xff08;二十八&#xff09; Leetcode—67.二进制求和 实现代码 void reverse(char *a, int len) {for(int i 0; i < len / 2; i) {char tmp a[i];a[i] a[len - 1 - i];a[len - 1 - i] tmp;} }char* addBinary(char* a, char* b) {int len1 strlen(a…

Hosts File Editor 实用工具

我一般手工编辑hosts文件&#xff0c;我想给hosts文件加一个开关&#xff0c;本想自己实现&#xff0c;但是忽然发现微软已经提供了官方的解决方案&#xff0c;感觉有能人。 对文件的行的修改被抽象成了一个开关。腻害&#xff01;&#xff01;&#xff01;

STM32独立看门狗(IWDG)溢出时间计算

什么是IWDG&#xff1f; 独立看门狗(IWDG)由专用的低速时钟(LSI)驱动&#xff0c;即使主时钟发生故障它也仍然有效。 IWDG最适合应用于那些需要看门狗作为一个在主程序之外&#xff0c;能够完全独立工作&#xff0c;并且对时间精度要求较低的场合。 从上图我们可以看出IWDG的时…

postman设置动态token, 每次登录更新token

postman设置动态token, 每次登录更新token 文章目录 postman设置动态token, 每次登录更新token问题1. 设置全局变量2. 新建登录接口3. 设置脚本4. 切换环境5. 配置动态token 问题 token过期时间一般比较短, 每次使用postman调用接口都token非常麻烦 实现token过期后, 调用一次…

Python语言:经典案例分析讲解2

例题1&#xff1a;文件的操作 例题2&#xff1a;调用函数求偶数之和 例题3&#xff1a;调用函数并使用递归的方法求斐波那契数前N项之和 题1: 以只写的模式打开文件test.txt&#xff0c;写入"Python"&#xff0c;关闭文件。 代码如下&#xff1a; f open("E:/…

微信小程序真机调试连接状态一直在正常和未链接之间反复横跳?

背景&#xff1a;小程序真机调试的时候&#xff0c;发现真机的network不显示接口调用情况&#xff0c;控制台也没有输出内容。具体如下所示&#xff1b; 解决方法&#xff1a; 1、确保手机端连接的网络和微信开发者工具网络一致&#xff0c;比如用同一个WiFi 2、真机自动调试…

2023年【建筑电工(建筑特殊工种)】找解析及建筑电工(建筑特殊工种)复审考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 建筑电工(建筑特殊工种)找解析是安全生产模拟考试一点通生成的&#xff0c;建筑电工(建筑特殊工种)证模拟考试题库是根据建筑电工(建筑特殊工种)最新版教材汇编出建筑电工(建筑特殊工种)仿真模拟考试。2023年【建筑电…

怎样使用ovsyunlive在web网页上直接播放rtsp/rtmp视频

业务中需要在网页中直接播放rtsp和rtmp视频&#xff0c;多方比较测试发现ovsyunlive的播放器能直接播放rtsp/rtmp视频&#xff0c;还是非常方便简洁&#xff0c;使用过程如下&#xff1a; 1&#xff0c;Windows系统在github上面下载ovsyunlive绿色包下载解压。 github地址&am…