本文共 1294 字,大约阅读时间需要 4 分钟。
目录
safedog BT(宝塔) XXX云盾 宝塔过滤的比安全狗厉害一些,在真实情况下现在很多网站都是用宝塔。
Content-Disposition: 表单数据,一般可更改
name:表单参数值,不能更改Filename:文件名,可以更改,但意义不大Content-Type:文件MIME,视情况更改防护软件通常通过数据包中的代码判断数据包异常,从而拦截文件上传。通过研究发现,许多WAF会对特定关键字进行检测,如.php或其他常见文件扩展名。如果能将这些关键字隐藏或改变格式,通常可以绕过WAF的过滤。例如,可以采用如`.php`或`ph p`等变形方式,但需要注意这些方法是否会被检测到。
数据溢出-防匹配(xxx…)
在form-data;处添加大量垃圾数据,末尾加上分号,以绕过防护。`符号变异-防匹配(' " ;)`
通过变换引号类型或添加分号,改变WAF的匹配规则。例如,将单引号替换为双引号或前后交替使用,使得WAF无法正确识别文件扩展名。数据截断-防匹配(%00 ; 换行)
通过添加特殊字符或换行,干扰WAF的匹配逻辑,例如filename="x.p h" 或 "x.jpg;.php"。重复数据-防匹配(参数多次)
通过在Content-Disposition中多次重复filename参数,如filename="x.php"; filename="x.php";,使WAF难以检测真实文件扩展名。使用fuzz工具生成大量可能的文件名或参数值,通过大量尝试实现绕过WAF。例如,在filename或Content-Disposition中插入随机字典后的字符串,测试成功率。
文件上传安全修复方案
后端验证:采用服务端验证模式,严禁前端编辑表单数据
后缀检测:基于黑名单或白名单过滤MIME检测:严格验证文件扩展名和MIME类型内容检测:完整性检查文件头或使用高级正则表达式建议采用的方案包括:
1. 采用服务端验证模式,确保前端不能编辑表单数据2. 对于常见文件类型(如jpg、png)开启双重验证,既检查扩展名又检查MIME类型3. 使用自带的过滤函数或自定义验证函数,对于传入参数进行严格检查最后,建议使用专业的WAF产品(如宝塔云盾等)进行额外防护,确保漏洞无法被攻击者绕过。
转载地址:http://fkryk.baihongyu.com/