当前位置: 首页 > news >正文

upload-labs靶场通关详解:第6-9关

目录

第六关:大小写绕过

一、分析源代码

二、解题思路

三、解题步骤

第七关:空格绕过

一、分析源代码

二、解题思路

三、解题步骤

第八关:点号绕过

一、分析源代码

二、解题思路

三、解题步骤

第九关:::$DATA字符串绕过

一、分析源代码

二、解题思路

三、解题步骤


第六关:大小写绕过

一、分析源代码

$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 . '文件夹不存在,请手工创建!';}
}

通过分析源代码发现,这一关把.ini也给限制了。但是,仔细观察,发现它和上一关的代码比起来,漏掉了一行代码,这行代码就是转换为小写。

二、解题思路

在PHP中,大小写区分是存在一定的规则。我们尝试使用PHP这个大写后缀,尝试绕过。

三、解题步骤

1.将一句话木马的后缀改成大写的PHP。

2.上传文件,显示成功,说明改成大写是可以绕过的。

3.复制图片地址,查看木马是否被成功解析。

第七关:空格绕过

一、分析源代码

(第七关)

(第五关)

我们发现它少了“首位去空”这行代码,因此猜想解题步骤和第六关应该是差不多的。

二、解题思路

“首尾去空” 是编程中处理字符串时的一种常见操作,指的是去除字符串开头和结尾的空白字符,保留中间的有效内容。这一操作也被称为字符串修剪(Trimming),在数据清洗、文本处理和用户输入验证中经常用到。

windows文件系统的特性是:不允许文件名以空格结尾,创建时会自动删除。

我们可以尝试在上传文件时加上空格绕过,当它保存在服务器上时空格又会被删除,就成功保存了php文件。

三、解题步骤

1.上传666.php,利用bp工具进行拦截,在php后面加上空格,放行。

可以看到这里添加了空格。

2.验证木马是否能被成功解析。

第八关:点号绕过

一、分析源代码

(第八关)

(第五关)

少了“删除文件名末尾的点”这行代码,同前两关一样的道理。

二、解题思路

windows同样会删除文件名末尾的句点(.),同理绕过。

三、解题步骤

1.上传666.php,利用bp工具进行拦截,在php后面加上句点(.),放行。

2.上传成功,验证木马是否能被解析。

第九关:::$DATA字符串绕过

一、分析源代码

(第九关)

(第五关)

少了“去除字符串::$DATA ”这行代码,和前几关一样。

二、解题思路

::$DATA 是 NTFS 文件系统中访问数据流的语法格式,用于标识文件的主数据流或备用数据流。这里不用过多理解,模仿前几关在文件名后缀加上这个字符串尝试去绕过上传。

三、解题步骤

1.上传666.php,利用bp工具进行拦截,在php后面加上::$DATA ,放行。

2.上传成功,验证木马是否能被解析。

相关文章:

  • 【歌曲结构】1:基于歌词的歌曲结构分析:高潮、钩子、双副歌
  • 开发日常中的抓包工具经验谈:Charles 抓包工具与其它选项对比
  • 基于大模型预测胃穿孔预测与围手术期管理系统技术方案
  • React 轻量级富文本编辑器推荐(中文版)
  • 【大模型面试每日一题】Day 19:如何设计自动化评估框架验证大模型的多步推理能力(如数学解题)?
  • 课程11. 计算机视觉、自编码器和生成对抗网络 (GAN)
  • Leetcode刷题 | Day63_图论08_拓扑排序
  • 国标GB28181视频平台EasyGBS助力智慧医院打造全方位视频监控联网服务体系
  • 【氮化镓】HfO2钝化优化GaN 器件性能
  • 傻子学编程之——数据库如何性能优化
  • VScode各文件转化为PDF的方法
  • 傻子学编程之——Java并发编程的问题与挑战
  • Rust 数据结构:Vector
  • Java并发编程:锁机制
  • VBA_NZ系列工具NZ10:VBA压缩与解压工具
  • 2025长三角杯数学建模B题思路模型代码:空气源热泵供暖的温度预测,赛题分析与思路
  • gitlab+portainer 实现Ruoyi Vue前端CI/CD
  • Memo of Omnipeek for 802.11 (Updating)
  • 产品更新丨谷云科技 iPaaS 集成平台 V7.5 版本发布
  • Secs/Gem第六讲(基于secs4net项目的ChatGpt介绍)
  • 人民网三评“网络烂梗”:莫让低级趣味围猎青少年
  • 著名词作家陈哲逝世,代表作《让世界充满爱》《同一首歌》等
  • “80后”北京市东城区副区长王智勇获公示拟任区委常委
  • 秘鲁总理辞职
  • 沙青青评《通勤梦魇》︱“人机组合”的通勤之路
  • “远践”项目启动公益生态圈,上海青少年公益力量蓬勃生长