文件上传绕过waf
safedog 绕过方式
上传参数解析:明确哪些东西能修改?
content-disposition:一般可更改,就是表单数据
name:表单参数值,不能更改
这个值是固定的,不能更改的,这个是和后端绑定的
filename:文件名不能更改
这个是最关键的 它包含了文件的后缀名
content-type:文件MIME,视情况更改,这是一个绕过条件,我们可以根据它进行绕过,如果对方不是这个绕过条件,就没有意义了
常见绕过方法
数据溢出-防匹配(xxx…)
把数据搞多一点 数据多了之后就会崩溃 多一点垃圾数据
添加垃圾数据
绕过
符号变异-防匹配(‘ “ )
思路:
将原来的双引号改成单引号,安全狗是不是只检测双引号里面的数据而不检测单引号的数据?
没绕过
去除双引号
绕过
数据阶段-防匹配(%00)
尝试改成x.php%00.jpg(%00需要编码)
未绕过
尝试改成x.php;.jpg
绕过
尝试换行
绕过
重复数据-防匹配
多写几个filename干扰
借助代码的递归循环
先测试以那个为准
判断出以y.jpg为准
尝试
未绕过
尝试多几条数据
绕过
尝试‘/’ ‘;’绕过
成功绕过
fuzz模糊测试
资源链接
怎么进行fuzz
步骤
- 单击右键发送到intruder
- 点击清除
- 把这个地方当成一个字典去变化
- 点击payloads 再选择字典
- 点击option 设置
- 执行
安全修复
文件上传安全方式
后端验证:采用服务端验证模式
后缀监测:基于黑名单,白名单过滤
MIME检测:基于上传自带类型检测
内容检测:文件头,完整性检测
自带函数过滤:如下图
自定义函数过滤:function
waf防护产品:宝塔,云盾,安全公司产品
后端验证:采用服务端验证模式
后缀监测:基于黑名单,白名单过滤
MIME检测:基于上传自带类型检测
内容检测:文件头,完整性检测
自带函数过滤:如下图
[外链图片转存中…(img-K5mLY9MJ-1629768951801)]
自定义函数过滤:function
waf防护产品:宝塔,云盾,安全公司产品