上传参数名解析:明确哪些参数能修改?
content-disposition:一般可更改
name:表单参数值,不能更改
filename:文件名,可以修改
content-type:文件mime,视情况修改
常见绕过方法
数据溢出-防匹配(xxx……)
大量数据的重复溢出
符号变异-防匹配(“”;)
有些会认为;是结尾,那么我们可以故意使用;让代码匹配错误
数据截断-防匹配(%00;换行)
php可以被转换为
p
h
p
或者截断类似于php%00.jpg
重复数据-防匹配(参数多次)
类似于垃圾数据
fuzzing
就是各种上面技巧的组合使用
payload:
安全修复
后端验证:采用服务端验证模式
后缀检测:基于黑白名单过滤
MIME检测:基于上传自带类型检测
内容检测:文件头,完整性检测
自带函数过滤:参考uploads函数
自定义函数过滤:function check_file(){}
waf防护产品:宝塔,云盾,安全公司产品等