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

upload-labs关卡记录8

黑名单过滤,同时不能进行双写,大小写,特殊可解析后缀,.htaccess,都不能。点击提示发现:

禁止上传所有可解析后缀,抓包试试:

抓包加空格发现也不能绕过,看源码分析吧:

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

 可以看到,相比前一关,这里多了一个前后空格的去除,因此这里用加点绕过:

  1. $file_ext = strrchr($file_name, '.'); 这行代码使用strrchr函数获取文件名中的最后一个点(.)之后的部分,即文件扩展名。而不会去除我们加的.。但是在Windows下,这个点和空格一样,都会被忽略。

上传成功,试试:


http://www.kler.cn/a/456601.html

相关文章:

  • C++ 设计模式:享元模式(Flyweight Pattern)
  • WPF中的Microsoft XAML Behaviors包功能详解
  • Python中PDF转Word的技术
  • Jenkins使用记录
  • MySQLOCP考试过了,题库很稳,经验分享。
  • 从零开始开发纯血鸿蒙应用之逻辑封装
  • Java基于SpringBoot的社区团购系统的设计与实现,附源码
  • Clickhouse使用基础
  • 【可靠有效】springboot使用netty搭建TCP服务器
  • 【达梦数据库】达梦数据库windows安装
  • Mask R-CNN
  • WPF TextBox 输入限制 详解
  • OpenWrt 系统UCI详解(Lua、C语言调用uci接口实例)
  • Cocos Creator 3.8.5 正式发布,更小更快更多平台!
  • Windows Subsystem for Linux (WSL)
  • 【WebSocket】tomcat内部处理websocket的过程
  • LossMaskMatrix损失函数掩码矩阵
  • 大模型推理:vllm多机多卡分布式本地部署
  • 【jyy os 2024】绪论
  • 图文教程:使用PowerDesigner导出数据库表结构为Word/Html文档
  • 从0入门自主空中机器人-1【课程介绍】
  • UI页面布局分析(4)- 贵族 特权分页列表
  • 【面试经典】多数元素
  • c#泛型学习
  • 香橙派5Plus启动报错bug: spinlock bad magic on cpu#6, systemd-udevd/443
  • Anaconda+PyTorch(CPU版)安装