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;
    }
}

(二)绕过思路

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

(三)绕过实战

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

二、第二关

(一)代码分析

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

(二)绕过思路

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

(三)绕过实战

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

Content-Type:application/octet-stream

修改为:

Content-Type:image/jpeg

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

三、第三关

(一)代码分析

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

(二)绕过思路

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

(三)绕过实战

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

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

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

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

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

猜你喜欢

转载自blog.csdn.net/weixin_40228200/article/details/126738148
今日推荐