upload-labs 通关

第三关(黑名单过滤不全,php3、php5绕过)

方法一:我们先进行黑盒测试,先上传一个test.php文件。我们会发现这是一个黑名单过滤,并且我们还发现这个黑名单只过滤了php,但没有过滤php3、php4、php5等,所以我们可以用php3(当然也可以用php4、php5等)绕过,从而上传php文件

方法二:点空格绕过

这里我先解释一下点绕过和空格绕过

我这先创建一个1.txt的文件,然后再创建一个1.txt.的文件

我们发现在创建1.txt.时,我们的系统会自动把.过滤掉,所以我们创建还是1.txt文件

那我们试试上传1.php.文件,看能不能绕过黑名单,从而上传php文件

很明显上传失败了,这是为什么呢?这是因为这里代码会把文件名末尾的点删除掉,所以我们就上传失败了,那如果是..(两个点),还是一样上传失败,这样还是因为代码原因,虽然说是文件名末尾的点,但没说多少个点,所以就上传失败了(当然我理解的是这样,不知道有没有理解错,如果错了,各位朋友评论告诉我一下)

空格绕过也是这样的原理,由于我们系统的原因,创建文件时也会把空格过滤掉,所以我们能不能在这里试试空格绕过,结果显而易见,不行,为什么呢?还是因为代码把后面空格给删除掉了

那我们把空格绕过和点绕过结合起来呢?

因为我们是创建不出一个xx.php. .(点加空格加点)的文件的,所以我们必须使用bp抓包修改数据

我们还真绕过了

那这里为什么又可以绕过呢?我是这样理解的代码先把一个点删掉,然后又把空格去掉,就剩下test.php.文件,代码识别时,识别到test.php.文件的后缀是.(空白的后缀名,就是没有后缀名),并且这个后缀名没有在黑名单中,所以就能绕过,上传文件了(如果我理解错了,大家跟我说一下)

第四关(.htaccess)

方法一:这关还是黑名单绕过上传,但是这里和上面第三关的区别是,这里把php5、php3等都加进了黑名单,所以我们就不能用它们进行绕过了

但我们可以看到,它没有对.htaccess文件进行限制,我们可以使用.htaccess文件进行绕过(这里我就不解释什么是.htaccess文件了,网上有资料)

这里.htaccess有使用前提

我们要修改apache下的httpd.conf文件,使用文件编辑器对httpd.conf进行编辑,把里面的AllowOverride None改为AllowOverride All,并保存

创建一个.htaccess文件(好像用记事本创建的文件不行,可以使用Notepad++创建这个文件),文件内容为:

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

但我这复现失败,好像是因为php的nts版本无法解析,因为我是在phpstudy上搭建的靶场(如果有人做出来,告诉我一下方法)

这里我说一下接下来的做法,我们先上传.htaccess文件,再上传一个test.jpg(把test.php改为test.jpg)的文件,那么后面上传的test.jpg会被解析成php文件

方法二:我们可以使用第三关的点空格绕过的方法进行绕过,上传文件,这里我就不多说了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值