文件上传练习 —— upload-labs靶场(一)

0X00 靶场准备

靶场项目地址:https://github.com/c0ny1/upload-labs
下载解压放在PHPstudy的www目录下即可
注意靶机的病毒防护要关了,不然一直上传失败

0X01 Pass-1

上传一个webshell到服务器,选择一个PHP一句话木马文件,上传
在这里插入图片描述
提示我们该文件类型不允许上传,应该是前端对文件类型进行了验证。
在这里插入图片描述
检查源码,发现表单提交时会触发checkFile函数,然后对我们的文件后缀名进行检查。
在这里插入图片描述

对于前端验证,我们有多种方法可进行绕过:

①禁用浏览器JavaScript
②删除onsubmit事件
③更改js校验中的白名单
④修改文件后缀名为白名单中的后缀名,然后抓包进行修改

成功绕过前端验证,上传成功。
在这里插入图片描述
蚁剑也能成功连接:
在这里插入图片描述

0X02 Pass-2

尝试上传一句话木马文件,得到提示,删除onsubmit事件也上传失败,猜测应该是加上了后端的验证。
在这里插入图片描述
查看提示说是“本pass在服务端对数据包的MIME进行检查!”。

MIME是HTTP头文件中的Content-Type类型,如果上传的是PHP文件的话,对应的Content-Type就是text/html,而如果是合法上传的jpg文件的话,Content-Type就是image/jpg。

服务器在接收到请求时,会对Content-Type进行判断,合法则进行后续流程,不合法则终止上传。

对于MIME检测,我们可以使用burpsuite进行抓包修改,可以修改文件类型,然后抓包修改为php,也可以修改Content-Type为合法的Content-Type。

这里我们选择了修改文件后缀名为jpg,然后上传,抓包,修改后缀名,发送,没有报错信息,蚁剑也能成功连上,成功上传。
在这里插入图片描述在这里插入图片描述

0X03 Pass-3

先尝试上传普通的一句话木马文件,得到提示:
在这里插入图片描述黑名单限制,尝试修改后缀名为jpg,抓包修改
在这里插入图片描述
还是提示不能上传,那这次应该是后端对文件类型进行了验证。

注意:php语言除了可以解析以php为后缀的文件,还可以解析php2,php3、php4、php5这些后缀的文件。

于是修改后缀名为php5,上传成功
在这里插入图片描述

tips:不同的服务器,可以上传的文件类型也不同,所以需要进行逐个排除

0X04 Pass-4

这次黑名单比上一关多了很多,尝试大小写混杂也不行,也被识别出来了。
在这里插入图片描述
这里可以利用PHP 和 Windows环境的叠加特性,以下符号在正则匹配时的相等性:

双引号" = 点号.
大于符号> = 问号?
小于符号< = 星号*

先上传一个名为shell.php:.jpg的文件,上传成功后会生成4.php的空文件,大小为0KB.

然后将文件名改为shell.<shell.<<<shell.>>>shell.>><后再次上传,重写shell.php文件内容,Webshell代码就会写入原来的shell.php空文件中。

要注意Windows下文件名不能包含以下特殊字符,所以这用到了burp进行抓包修改
在这里插入图片描述上传成功,蚁剑也成功连上。

0X05 Pass-5

这题同上一题一样可以利用PHP 和 Windows环境的叠加特性。

按照别人的做法,上一题似乎可以用重写文件解析规则绕过。使用.htaccess文件,可是不知道是我靶场配置有问题还是因为什么,一直不能成功。。。

0X06 Pass-6

第六题把htaccess后缀也加入黑名单了,不过这次没有进行大小写过滤,可以将文件的后缀修改为大小写混杂,然后上传成功。

0X07 Pass-7

查看源码的话,可以发现相较之前少了一行

$file_ext = trim($file_ext); //首尾去空

我们可以上传php文件,然后burp抓包进行修改,在最后加上一个空格

在这里插入图片描述
上传成功!

0X08

今天就先到这了,下次接着记录
(我发现我标题写了一的好像都鸽了,害)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值