第一关:
前端 js 函数白名单过滤
方法 1:BP 抓包改文件,先把 php 后缀改成白名单里的,然后抓包在改回来绕过前端
方法 2:在浏览器设置里关闭 js 函数
方法 3:在 consel 里运行改过的 html 源码(亲测未成功,js 路径报错)

第二关:
对于 content-type 的检验
BP 将 text/plain 改为 image/gif

第三关:
黑名单后缀
用类似等效的后缀代替(亦或是大小写)
比如说:.phtml .phps .php5 .pht,但如果上传的是.php5 这种类型文件的话,如果想要被当成 php 执行的话,需要有个前提条件,即 Apache 的 httpd.conf 有如下配置代码
大小写都可 如.PhP .pHP (亲测失败)

第四关:
更全的黑名单
.htaccess,于是首先上传一个.htaccess 内容如下的文件:
SetHandler application/x-httpd-php
这样所有文件都会解析为 php,然后再上传图片马,就可以解析:

第五关:
黑名单,加上了.htaccess,但是没有将后缀进行大小写统一,于是可以通过大小写绕过,在 content-disposition filename=xxx.phP

更新于