第24天文件上传之waf绕过及安全修复
上传数据包中:
Content-Disposition:接受的类型(一般可以改)
name:接受表单的名字(固定的)
filename:上传的文件名(可改)
content-type:显示上传文件名自带的参数类型(文件MIME,视情况而定)
常见绕过方法:
数据溢出-防匹配(xxx...)
如
加入大量垃圾数据,绕过,记得最后加;。
符号变异-防匹配(' " ;)
"qq.php,绕过验证,上传qq.php
"x"x.php上传x.php
数据截断-防匹配(%00;换行)
%00
x.php%00.jpg
将%00进行url编码
x.jpg;.php(安全狗匹配到;就结束了,但是数据包又将其当做一个完整的文件名,所以绕过)
%00要手工转码
换行
x.
p
h
p"
可以绕过安全狗
重复数据-防匹配(参数多次)
(递归循环)多写几遍filename
上传x.php,用重复数据迷惑验证,实际上filename仍是x.php
上传jpeg;x.php,绕过验证,/也可以作为一个条件绕过
safedog+云服务器+uploadlabs_fuzz测试
fuzz web 字典爆破
用burp加字典爆破绕waf
安全修复
后端验证:采用服务端验证模式
后缀检测:黑白名单验证
MIME验证:给予上传自带类型检测
内容检测:文件头,完整性检测
自带函数过滤:参考uploadlabs函数
自定义函数过滤:function,check_file(){}
WAF防护产品:宝塔,云盾,安全公司产品等
License:
CC BY 4.0