首页 > 其他分享 >[SWPUCTF 2022 新生赛]file_master wp

[SWPUCTF 2022 新生赛]file_master wp

时间:2023-06-26 10:44:33浏览次数:38  
标签:20 2022 SWPUCTF width master file wp

前置知识点:

这个题目的有一点之前是没有看见过的,就是对图片的宽和高进行了一些限制,限制都小于20才能上传成功

看了别人的wp说是可以直接定义

#define height 1
#define width 1

就是上面的 只要把后面的数字改成小于20的就可以了 (20是题目要求的,image hight and width must less than 20)

具体的看实际环境来看

先读取index.php

<!--?php
    session_start();
    if(isset($_GET['filename'])){
        echo file_get_contents($_GET['filename']);
    }
    else if(isset($_FILES['file']['name'])){
        $whtie_list = array("image/jpeg");
        $filetype = $_FILES["file"]["type"];
        if(in_array($filetype,$whtie_list)){
            $img_info = @getimagesize($_FILES["file"]["tmp_name"]);
            if($img_info){
                if($img_info[0]<=20 && $img_info[1]<=20){
                    if(!is_dir("upload/".session_id())){
                        mkdir("upload/".session_id());
                    }
                    $save_path = "upload/".session_id()."/".$_FILES["file"]["name"];
                    move_uploaded_file($_FILES["file"]["tmp_name"],$save_path);
                    $content = file_get_contents($save_path);
                    if(preg_match("/php/i",$content)){
                        sleep(5);
                        @unlink($save_path);
                        die("hacker!!!");
                    }else{
                        echo "upload success!! upload/your_sessionid/your_filename";
                    }
                }else{
                    die("image hight and width must less than 20");
                }
            }else{
                die("invalid file head");
            }
        }else{
            die("invalid file type!image/jpeg only!!");
        }
    }else{
        echo '<img src="data:jpg;base64,'.base64_encode(file_get_contents("welcome.jpg")).'"-->

具体的就是把php进行了一个过滤,然后对 MIME进行了一个检查 还有就是对上传的图片大小进行了一个限制

前两个之前都遇见过,后面一个就是利用前面的,进行一个定义

最后需要注意一下路径即可

image

标签:20,2022,SWPUCTF,width,master,file,wp
From: https://www.cnblogs.com/mrfs/p/17505025.html

相关文章

  • 关于VS2022---Git使用指南
    第一步 输入对应的地址,并点击创建并推送第二步:添加文件、修改文件、删除文件  点击添加修改项,并推送数据库......
  • 发布一个Visual Studio 2022 插件,可以自动完成构造函数依赖注入代码
    赖注入(DI)在开发中既是常见的也是必需的技术。它帮助我们优化了代码结构,使得应用更加灵活、易于扩展,同时也降低了各个模块之间的耦合度,更容易进行单元测试,提高了编码效率和质量。不过,手动注入依赖项也可能会成为我们开发过程中的瓶颈。通常情况下,当我们需要注入大量依赖对象时,我......
  • 【专题】2022年中国跨境电商行业研究报告PDF合集分享(附原数据表)
    全文链接:http://tecdat.cn/?p=32044近年来,我国的跨境电子商务发展迅速,在过去五年中,其贸易额增长率达到了16.2%,已经成为稳定对外贸易的一支重要力量一方面,随着跨境电子商务的发展,跨境电子商务的监管政策得到了进一步的改善,跨境电子商务的规模也得到了进一步的扩大,整个电子商务的......
  • SEERC2022(E,F,H,K)
    正题比赛链接:https://codeforces.com/gym/104114E-Exercise【dp,贪心】题目大意给出长度为\(2n\)的序列\(c_{i}\),将\(1\sim2n\)两两配对使得每一对\((a_i,b_i)\)的\(|c_{b_i}-c_{a_i}|\)总和最小且对于任意\(i\)不存在\(2i-1\)与\(2i\)配对的情况。\(1\leq......
  • 百度网盘下载慢怎么解决2022(4种免费提速方法)
    摘自:http://baike.jld5.cn/news/49696.html工信部终于针对网盘免费用户下载速度慢的问题出手了,要求各网盘企业在同样的网络条件下,对免费用户提供的上传和下载的最低速率应确保满足基本的下载需求,并且要求此项任务于2021年12月底前完成。看到这则消息时,给小编的第一感觉是网盘免......
  • 安装新版VS2022之后,添加EF实体模型没有生成对于的表格
    1)找到vs2022安装路径中的EF6.Utility.CS.ttinclude.tt文件,需要去掉.tt后缀,然后再做以下修改【部分版本直接是EF6.Utility.CS.ttinclude则直接进入第二步】2)修改EF6的实用程序EF6.Utility.CS.ttinclude文件,它默认的位置在:C:\ProgramFiles\MicrosoftVisualStudio\2022\Profes......
  • 洛谷P8341 [AHOI2022] 回忆
    [AHOI2022]回忆题目背景生活在题面里的他们,是一群怪异的少年。对城市中修建道路需满足的基本物理限制熟视无睹,沉迷于十万个城市、百万条道路上的各种结构。明明知道真正需要的数字庞大到无法计算,却偏要关心它模一个奇怪素数之后得到的结果。如此智力超群的他们,却总是在自己......
  • MasterCAM 2021中文版数控编程加工基础入门视频教程
    适用对象:MasterCAM2021中文版内容简介:本教程通过12章节课程详细讲解MasterCAM2021软件的基础操作,包括2D/3D绘图、数控编程和曲面加工等,实战性强,纯干货,结合实际操作让用户快速掌握软件,真正实现学以致用。本教程画质虽不是高清的,但不影响观看,同时附安装包,暂无配套素材文件,好的......
  • 2022年最新对比学习(Contrastive Learning)相关必读论文整理分享
        要说到对比学习(ContrastiveLearning),首先要从自监督学习开始讲起。自监督学习属于无监督学习范式的一种,特点是不需要人工标注的类别标签信息,直接利用数据本身作为监督信息,来学习样本数据的特征表达,并用于下游任务。    当前自监督学习可以被大致分为两类:    Genera......
  • 多伦多大学-强化学习导论-2022
    课程描述    这是一门关于不确定条件下强化学习和顺序决策的入门课程,重点在于理解理论基础。我们研究如何使用价值和策略迭代等动态规划方法来解决具有已知模型的顺序决策问题,以及如何扩展这些方法来解决模型未知的强化学习问题。其他主题包括,RL中的函数逼近、策略梯度方法......