upload-labs通关方式

pass-1

通过弹窗可推断此关卡的语言大概率为js,因此得出两种解决办法 

方法一

浏览器禁用js

关闭后就逃出了js的验证就可以正常php文件

上传成功后打开图片链接根据你写的一句话木马执行它,我这里采用phpinfo()

方法二

在控制台找到此语句

将蓝色部分删除即可

pass-2

 

通过提示可知他是在服务端进行检查

 通过查看源码可以看出能上传的文件类型为image/jpeg

通过burp suite进行抓包

修改文件类型

上传成功

pass-3 

查看提示和代码发现他是使用黑名单禁止文件上传类型的

这里我们直接使用将文件类型改为php2 php3 php5 php7 phtml 等绕过

PHP5文件实际上就是.PHP文件,只不过代码由PHP5引擎解析。

PHP5是一种PHP版本间的区分,该后缀名并不常见,另外还有.PHP2.PHP3.PHP4文件。

我这里不解析php3 5 文件这里不演示了,但是使用php3 5 是可以成功绕过的

pass-4

首先查看提示,本关继续使用黑名单,禁止下列文件格式:

限制特别多,但是我们可以想到一种更奇特的方法(即.htaccss文件):

常见配法

.htaccess文件内容如下

<FilesMatch "4.jpg">
SetHandler application/x-httpd-php
</FilesMatch>


查看作用后,发现这句话的作用是将该目录所有文件均映射为php文件类型,所以我们先上传.htaccess文件,随后再上传我们的jpg文件(jpg文件要和.hataccess文件在同一个目录下),查看后我们发现uploads已经被传上去。

pass-5

这里看源码

这里没有转换小写因此将文件类型改为大写就行

 

pass-6

通过查看代码发现这里并没有首尾去空因此很简单加空格就行

windows下.和空格会被自动去掉因此用burp进行更改

上传成功

 

pass-7

 通过查看代码可以看出没有去点

因此这里还是用burp抓包改包

上传成功

 

 pass-8

查看源码

这里没有进行过滤data字符因此这里也是抓包改包

 

上传成功

 

pass-9

查看代码发现这里几乎过滤了所有的空格点data字符等

 

所以这里我们不能再只绕过一次了,通过代码执行顺序我们可以先过滤掉点再过滤空格

所以这里老办法抓包改包

 

 

pass-10

 这里查看代码关键代码如下

发现依旧是用上传的文件名来拼接路径并保存文件 没有对文件重命名

只是用了str_ireplace()函数来检测(此函数无视大小写) 如果文件名含有黑名单里面的字符串 就替换为空

但是只替换一次 并没有进行正则匹配或者是循环匹配敏感字符  因此只要双写php即可 因为是从左往右读的 所以替换为空后 还是php

pphphp、phphpp都可以尝试 

上传成功 

 

  • 19
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值