代码:
1 | $is_upload = false; |
代码解释:
trim():去除文件前后的空格,tab等字符
deldot():删除文件名末尾的点
strrchr($file_name, ‘.’);:截取文件名中点后面的字符串(包括点)
strtolower($file_ext); //转换为小写
str_ireplace(‘::$DATA’, ‘’, $file_ext);//去除字符串::$DATA
先上传一个php,发现可以构筑数据包,所以是后端检测
随便上传一个hack.png文件,发现显示的文件路径为upload/202109272127051740.png
所以文件是通过$img_path = UPLOAD_PATH.'/'.date("YmdHis").rand(1000,9999).$file_ext;
随机生成的文件名
前文说了,只要是后端检测,我们就不可能在检测之后把被检测的部分改过来了(因为那时候文件已经到了服务器端)
不过虽然php被禁了,但是能被解析成php代码的文件还有phtml,php3,php4,php5,pht
,随便写一个就好了
(但是如果使用的是phpstudy,phpstudy这个配置文件把以上后缀都给注释了,所以如果不改的话这一关相当于没有漏洞,修改方法:https://blog.csdn.net/qq_43480081/article/details/102504348)