upload-labs通关(Pass-01~Pass-05)

目录

Pass-01

方法1:浏览器disable JS

方法2: burp抓包修改后缀

Pass-02

方法1:改Content-Type

方法 2:改文件后缀

Pass-03

Pass-04

Pass-05


开始之前,准备好burpsuite,浏览器配置好代理。

(还有一个必须知道的知识点)文件上传漏洞被利用需要两个前提条件

1、文件能上传成功

2、攻击者能知道文件路径

凡是上传图片并显示的关卡,都有三种方式可以知道文件路径,这里先说一下,后面就不再每关赘述了:

1、最简单直接的,在没显示出来的图片上右键选择“复制图像链接”,可以得到文件的绝对路径,比如:

http://192.168.101.16/upload-labs/upload/sh.php

 2、网页上右键选择“查看页面源代码”,源代码中显示文件的相对路径

3、如果是用burpsuite上传的文件,response报文中也会显示文件的相对路径。

下面就正式开始吧~~~

Pass-01

这关要求上传一个webshell,我选择了一个叫sh.php的文件并点击上传之后,跳出了一个弹框,提示当前文件类型不是允许上传的文件类型。

在burpsuite上proxy模块的http history中看了一下,并没有上传文件相关的报文,说明弹框时文件格式没有经过后端校验。

查看网页源代码,发现文件类型和弹框是由前端JS代码校验的。

这关至少有两种方法:浏览器disable JS,或者上传合法格式的文件,burp抓包并修改文件后缀为.php

方法1:浏览器disable JS

firefox可以安装一个叫Script Switch的插件,安装成功之后,就是下图右上角小红框里那个图标,使其处在JS disabled状态,上传sh.php。出现下图这样没加载成功的图片表示webshell已经上传成功。

到服务器上看看,上传成功的webshell在 upload-labs目录\upload 文件夹下

好了,先把服务器上的sh.php删掉,再来试试方法2。

方法2: burp抓包修改后缀

这个方法不如方法1方便呢,但是比较通用,而且不用安装插件或者扩展……

把攻击机上的sh.php改名为sh.png。

burp的proxy模块的intercept设置为on

选择sh.png并上传,这时burp的proxy模块可以抓到请求报文

将请求报文中 Content-Disposition头的filename从sh.png改为sh.php

然后一路forward,再去服务器上看看,就发现sh.php已经成功上传到服务器了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值