• upload-labs靶场通关指南(第1-3关)


    今天继续给大家介绍渗透测试相关知识,本文主要内容是upload-labs靶场通关指南(第1-3关)

    免责声明:
    本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
    再次强调:严禁对未授权设备进行渗透测试!

    一、第一关

    (一)代码分析

    第一关关键代码如下所示:

    function checkFile() {
        var file = document.getElementsByName('upload_file')[0].value;
        if (file == null || file == "") {
            alert("请选择要上传的文件!");
            return false;
        }
        //定义允许上传的文件类型
        var allow_ext = ".jpg|.png|.gif";
        //提取上传文件的类型
        var ext_name = file.substring(file.lastIndexOf("."));
        //判断上传文件类型是否允许上传
        if (allow_ext.indexOf(ext_name + "|") == -1) {
            var errMsg = "该文件不允许上传,请上传" + allow_ext + "类型的文件,当前文件类型为:" + ext_name;
            alert(errMsg);
            return false;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    (二)绕过思路

    从上述代码中可以看出,上述代码使用了JavaScript脚本,在前端对用户上传文件的类型进行了检测。因此,我们只需要先上传符合JavaScript脚本要求的数据包,然后使用Burpsuit抓取该数据包,然后将该文件的后缀名改成php,这样我们就可以成功上传恶意文件了。

    (三)绕过实战

    接下来,我们来进行第一关的绕过实战,首先,我们上传一个名为exp.jpg的文件(文件内容任意,可以是一句话木马等)。然后设置使用Burpsuit抓包,抓到数据包如下所示:
    在这里插入图片描述
    注意看上图中红线部分,我们将其修改为exp.php,这样就可以成功上传了,上传成功后的文件如下所示:
    在这里插入图片描述

    二、第二关

    (一)代码分析

    第二关关键代码如下所示:
    在这里插入图片描述

    (二)绕过思路

    结合代码及题目提示,我们可以明确,第二关对客户端上传的文件,只是校验了其MIME信息。因此我们的思路与第一关相类似,也是先上传文件,然后抓包,之后修改数据包的MIME信息,这样就能够绕过对MIME的检验了。

    (三)绕过实战

    接下来我们开始进行实战。还是先上传恶意文件,并使用Burpsuit抓包,修改下图中红线部分,将原始数据包中的:

    Content-Type:application/octet-stream
    
    • 1

    修改为:

    Content-Type:image/jpeg
    
    • 1

    在这里插入图片描述
    之后,即可放行该数据包。
    这样,我们也可以成功是上传我们的恶意文件了。

    三、第三关

    (一)代码分析

    第三关关键代码如下所示:
    在这里插入图片描述

    (二)绕过思路

    通过上述代码,结合题目提示,可以判断处,本关使用了黑名单的方式,对客户端上传的文件后缀名进行了检验,不允许上传asp、php、aspx、jsp等后缀名的文件。我们可以看出,这份黑名单非常不全面,我们可以使用phps、phtml、php5等后缀名绕过该过滤手段。

    (三)绕过实战

    接下来,我们进行绕过实战。我们创造一个后缀名为/php5的文件,并写入我们的恶意代码,之后进行上传,发现上传成功并出现如下页面:
    在这里插入图片描述
    接下来,我们可以使用浏览器自带的开发工具查看上图中图片的路径,如上图中红线部分所示。
    之后,我们可以访问该路径,结果如下所示:
    在这里插入图片描述
    从上图可以看出,我们的恶意文件成功上传,并且能够成功解析。

    四、关于phpstudy无法实现第三关,不解析php5、phtml等问题

    我们在进行上述实验时,有时会发现第三关无法使用phpstudy软件来复现。这时我们需要检查Apache的配置文件,并且在配置文件中添加如下内容:

    AddType application/x-httpd/php .php .phtml .php5
    
    • 1

    上述配置表示将后缀名为.php、.phtml、和.php5的文件都当作php文件解析,配置完成后如下所示:
    在这里插入图片描述
    此外,最新版本的phpstudy,即使进行了上述的配置,也不支持对.php5等文件的解析。因此,如果我们要做upload-labs的实验,最好使用2018版本的phpstudy。
    新版本的phpstudy如下所示:
    在这里插入图片描述
    老版本的phpstudy如下所示:
    在这里插入图片描述
    原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

  • 相关阅读:
    java开发的bbs论坛系统博客系统
    初识设计模式 - 装饰器模式
    VSCode 工具常用插件
    一文带你读懂什么是云主机
    1.1_4操作系统的运行机制与体系结构
    verilog 移位操作符
    动态规划算法(1)
    带你认识设计模式的【策略模式】及优缺点
    Bash脚本学习:AWK, SED
    Memtester框架是什么
  • 原文地址:https://blog.csdn.net/weixin_40228200/article/details/126738148