当前位置: 首页 > news >正文

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

相关文章:

  • Android Studio 利用系统签名打包apk
  • 升级打怪课堂的题库更新了!
  • Excel·VBA数组排列函数
  • 高级程序员项目经理写好代码必备的三条基本素质;以及代码的现象和本质问题解读;
  • 猿创征文|多模态图像合成和编辑(MISE):Multimodal Image Synthesis and Editing: A Survey
  • 网络与信息安全基础知识-- Internet及应用
  • 中秋邀请共赏图数据库-蚂蚁集团图数据TuGraph 正式开源
  • GD32F303固件库开发(14)----IIC之配置OLED
  • LeetCode 0231. 2 的幂
  • 【LeetCode】螺旋矩阵旋转图像
  • 猿创征文|网络原理——UDP/TCP协议
  • 理论第七课——sort
  • PyCharm利用pydevd-pycharm实现Python远程调试
  • Mysql中DQL(查询类)语句的执行顺序
  • CMake Tutorial 巡礼(2)_添加库
  • [数据结构]链表的实现在PHP中
  • 【css3】浏览器内核及其兼容性
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • Cumulo 的 ClojureScript 模块已经成型
  • emacs初体验
  • Git 使用集
  • IOS评论框不贴底(ios12新bug)
  • Java读取Properties文件的六种方法
  • MobX
  • spring boot 整合mybatis 无法输出sql的问题
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • ViewService——一种保证客户端与服务端同步的方法
  • Vim Clutch | 面向脚踏板编程……
  • vue-router的history模式发布配置
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 用Visual Studio开发以太坊智能合约
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (175)FPGA门控时钟技术
  • (ZT)出版业改革:该死的死,该生的生
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (三)Honghu Cloud云架构一定时调度平台
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (转载)Linux网络编程入门
  • **PHP二维数组遍历时同时赋值
  • .form文件_一篇文章学会文件上传
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net framework profiles /.net framework 配置
  • .NET 使用 XPath 来读写 XML 文件
  • /proc/interrupts 和 /proc/stat 查看中断的情况
  • @hook扩展分析
  • [ vulhub漏洞复现篇 ] Apache Flink目录遍历(CVE-2020-17519)
  • []指针
  • [AI]ChatGPT4 与 ChatGPT3.5 区别有多大