一般情况下,代码文件里会有一个数组或者列表,该数组或者列表里会包含一些非法的字符或者字符串,当数据包中含有符合该列表的字符串时,即认定该数据包是非法的。
-
一.如何判断是否为黑名单检测
黑名单是有限的,可以随意构造一个文件后缀,如果可以上传,则说明是黑名单检测,反之,为白名单检测。
二.绕过技巧
- 后缀双写绕过
- 后缀大小写绕过
- 其它可解析后缀绕过
- 图片+配置文件绕过
- 。。。
1.后缀双写绕过
靶场:http://127.0.0.1/upload-labs-master/Pass-11/index.php
-
介绍:有些网站代码中,会将文件后缀符合黑名单列表的字符串替换为空。比如上传“index.php”变为“index”。
-
绕过流程:
2.后缀大小写绕过
靶场:http://127.0.0.1/upload-labs-master/Pass-06/index.php
-
介绍:主要是利用windows对大小写不敏感进行绕过。
- Windows:对大小写不敏感
- Linux:对大小写敏感
-
绕过流程:
3.图片+配置文件绕过
.htaccess 文件(或者“分布式配置文件”),全称是HypertextAccess(超文本入口)。提供了针对目录改变配置的方法。它里面可
以存放Apache服务器配置相关的指令。
靶场:http://127.0.0.1/upload-labs-master/Pass-04/index.php
-
介绍:通过一个.htaccess文件调用 php 的解析器去解析一个文件名中只要包含"as.png"这个字符串的任意文件,所以无论文件名是什么样子,只要包含"as.png"这个字符串,都可以被以 php 的方式来解析,一个自定的.htaccess文件就可以以各种各样的方式去绕过很多上传验证机制。
-
绕过流程:
4.其它可解析后缀绕过
靶场:http://127.0.0.1/upload-labs-master/Pass-03/index.php