文件上传漏洞练习 upload-labs(6~10)【大小写绕过,空格绕过,打点绕过,特殊字符绕过,去点绕过】

写在前面

下面几道题目与php源码有关,如果你对php并不是很熟悉,或者看起来较为吃力,可以点击下方

源码分析链接

会有基础知识准备,同时在pass-03中有源码分析和对各个函数的讲解。

Pass-06

无论是提示还是源码,你都会发现对大小写限制并不完全。
在源码中缺少了全部转换为小写的函数。strtolower()
上传一个1.Php或者1.phP即可。
在这里插入图片描述
直接使用工具连接即可。

Pass-07

在源码中缺少了除去空格的函数
trim()
那么我们在上传名中加上一个空格就行了(抓包完成,你重命名肯定是不行的)
在这里插入图片描述
在灰色高亮位置,明显在文件后缀上加上了空格,上传后会自动去空,能够正常解析,这时你用工具连接即可
在这里插入图片描述

Pass-08

源码中失去了deldot()这个函数,无法自动去除文件后缀的点,那么我们在文件名后面加上一个点,同时满足提示要求“屏蔽了所有可解析后缀”
在pass-07和pass-08中其实都是利用重命名当中的小规则。
当然你也只能抓包修改。
在这里插入图片描述
在灰色高亮处,我加上了一个点,并且当你在网页端访问你上传的图时,你会发现加上点与否都能够访问得到。
在这里插入图片描述
显然,无论加点与否都能够得到200的正常返回。就是利用了这个书写的小漏洞。
在这里插入图片描述

Pass-09

根据源码,没有对特殊字符::$DATA进行处理
补充知识:
php在window的时候如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名,且保持"::$DATA"之前的文件名 他的目的就是不检查后缀名。
在这里插入图片描述
灰色高亮行就是修改后的样子。
唯一注意的是在用工具连接时要去掉::$DATA后缀进行连接
在这里插入图片描述
直接php文件连接即可。

Pass-10

源码已经和之前的差不多了,这里是利用deldot()函数的特性,删除时,会从后向前扫描,扫描到空格时会停下。所以,可以使用. .的方式进行绕过,当然,你在访问和连接时都要删除一个点
在这里插入图片描述
灰色高亮处就是修改的地方。
记得在连接时要少掉一个点。
在这里插入图片描述

posted @ 2021-08-04 11:02  Sayo-NERV  阅读(128)  评论(0编辑  收藏  举报