• CTFHub技能树 Web-文件上传详解


    0x01 无验证

    介绍:直接上传后缀是php的文件即可
    在这里插入图片描述

    文件上传

    在这里插入图片描述
    在这里插入图片描述

    进行连接
    在这里插入图片描述

    查找flag
    在这里插入图片描述

    0x02 前端验证

    介绍:直接查看网页源代码,发现只能上传.jpg,.png,.gif三种格式的文件,前端上传jpg,修改数据包进行上传
    在这里插入图片描述

    第一步 上传.jpg图片
    在这里插入图片描述

    第二步 修改后的数据包
    在这里插入图片描述

    第三步 进行连接
    在这里插入图片描述

    第四步 查找flag
    在这里插入图片描述

    0x03 .htaccess

    介绍:hatccess文件,.htaccess是Apache的又一特色。
    ● 一般来说,配置文件的作用范围都是全局的,但Apache提供了一种很方便的、可作用于当前目录及其子目录的配置文件——.htaccess(分布式配置文件),
    ● 提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。
    ● 作为用户,所能使用的命令受到限制。
    ● 简单来说,就是我上传了一个.htaccess文件到服务器,那么服务器之后就会将特定格式的文件以php格式解析。

    在这里插入图片描述
    ● 查看源代码,发现文件后缀都被禁用了
    在这里插入图片描述

    方法一:
    第一步 上传.htaccess文件

    AddType application/x-httpd-php .png  //.png文件当作php文件解析
    
    • 1

    在这里插入图片描述
    在这里插入图片描述

    第二步 上传png的文件

    在这里插入图片描述
    在这里插入图片描述

    第三步 进行连接
    在这里插入图片描述
    在这里插入图片描述

    方法二:
    第一步 上传.htaccess

    
    //只要文件名中包含pass777,就会被Apache解析为php文件。
    
    
    SetHandler application/x-httpd-php
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述
    在这里插入图片描述

    第二步 文件上传
    在这里插入图片描述
    在这里插入图片描述

    第三步 进行连接
    在这里插入图片描述
    在这里插入图片描述

    0x04 MIME绕过

    介绍:MIME(Multipurpose Internet MailExtensions)多用途互联网邮件扩展类型。
    ● 是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。
    ● 多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。
    ● MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。
    常见的MME类型,例如:

    #text表明文件是普通文本
    text/plain
    text/html
    #image表明是某种图像或者动态图(gif)
    image/jpeg
    image/png
    #audio表明是某种音频文件
    audio/mpeg
    audio/ogg
    audio/*
    #video表明是某种视频文件
    video/mp4
    #application表明是某种二进制数据
    application/*
    application/json
    application/javascript
    application/ecmascript
    application/octet-stream
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    在这里插入图片描述

    第一步 进行文件上传
    在这里插入图片描述

    第二步 修改数据包
    Content-Type: image/jpeg
    在这里插入图片描述

    第三步 进行连接
    在这里插入图片描述

    0x05 00截断

    http://www.admintony.com/%E5%85%B3%E4%BA%8E%E4%B8%8A%E4%BC%A0%E4%B8%AD%E7%9A%8400%E6%88%AA%E6%96%AD%E5%88%86%E6%9E%90.html
    0x00是字符串的结束标识符,攻击者可以利用手动添加字符串标识符的方式来将后面的内容进行截断,而后面的内容又可以帮助我们绕过检测。
    数据包中必须含有上传后文件的目录情况才可以用,比如数据包中存在path: uploads/,那么攻击者可以通过修改path的值来构造paylod: uploads/aa.php%00
    在这里插入图片描述

    第一步 进行文件上传
    在这里插入图片描述

    第二步 修改数据包

    POST /?road=/var/www/html/upload/123.php%00 HTTP/1.1
    
    • 1

    在这里插入图片描述

    第三步 进行连接

    在这里插入图片描述
    在这里插入图片描述

    0x06 双写后缀

    介绍 发现文件成功,但是后缀名缺失
    在这里插入图片描述

    第一步 文件上传
    在这里插入图片描述

    第二步 修改数据包
    在这里插入图片描述
    在这里插入图片描述

    第三步 进行连接,并查找文件

    在这里插入图片描述
    在这里插入图片描述

    0x07 文件头检查

    介绍:图片的文件头:GIF89a
    在这里插入图片描述

    第一步 文件上传
    在这里插入图片描述

    第二步 更改数据包

    ------WebKitFormBoundaryff32JeQTam0WpVd7
    Content-Disposition: form-data; name="file"; filename="1.php"
    Content-Type: image/jpeg
    
    GIF89a
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    第三步 进行连接,查找flag

    在这里插入图片描述

    0x08 其他

    黑名单绕过
    通过上传不受欢迎的php扩展来绕过黑名单。例如:pht,phpt,phtml,php3,php4,php5,php6

    白名单绕过
    通过某种类型的技巧来绕过白名单,例如添加空字节注入(shell.php%00.gif),或使用双重扩展来上传文件(shell.jpg.php)。

    扩展名大小写来绕过
    例如:pHp,Php,phP。

    双写后缀绕过
    例如:pphphp
    在这里插入图片描述

    摘抄


    很多人都曾梦想做一番大事业,但其实一点点小事累积就成了大事,任何大的成就也都是累积的结果,这就是累积定律。

    如果你想获得成长,就从认真完成手头的小任务开始;如果你想拥有一个好身材,就从慢跑1公里开始;如果你想有好的文笔,就从看一本书开始。你想成为一个什么样的人,想过什么样的生活,其实都取决于你每一个决定。

    任何事情只要开始就不晚,人生的路,每一步都算数。做你想做的事,努力成为你想成为的人,就从现在开始行动吧。
    —《累积定律》


  • 相关阅读:
    老卫带你学---leetcode刷题(89. 格雷编码)
    c++实现多重继承
    【Java中23种面试常考的设计模式之装饰器模式(Decorator)---结构型模式】
    C语言每日一题
    【一文秒懂——YAML配置文件】
    oh,我这个大佬盆友教我整机器学习
    封装、 继承、多态
    算法的复杂度分析
    Mybatis源码面试题汇总(持续更新中, 答案收集中)
    java中的注解
  • 原文地址:https://blog.csdn.net/qq_41901122/article/details/127973773