博客
关于我
24 WEB漏洞-文件上传之WAF绕过及安全修复_阿里云盾waf绕过怎么修复
阅读量:792 次
发布时间:2023-01-25

本文共 1294 字,大约阅读时间需要 4 分钟。

目录
    • WAF绕过
    • 上传参数名解析:明确哪些东西能修改?
    • 常见绕过方法:
      • `符号变异-防匹配(' " ;)`
      • 数据截断-防匹配(%00 ; 换行)
      • 重复数据-防匹配(参数多次)
      • 搜索引擎搜索fuzz web字典
    • 文件上传安全修复方案

WAF绕过

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 web字典

使用fuzz工具生成大量可能的文件名或参数值,通过大量尝试实现绕过WAF。例如,在filename或Content-Disposition中插入随机字典后的字符串,测试成功率。

文件上传安全修复方案

后端验证:采用服务端验证模式,严禁前端编辑表单数据

后缀检测:基于黑名单或白名单过滤
MIME检测:严格验证文件扩展名和MIME类型
内容检测:完整性检查文件头或使用高级正则表达式

建议采用的方案包括:

1. 采用服务端验证模式,确保前端不能编辑表单数据
2. 对于常见文件类型(如jpg、png)开启双重验证,既检查扩展名又检查MIME类型
3. 使用自带的过滤函数或自定义验证函数,对于传入参数进行严格检查

最后,建议使用专业的WAF产品(如宝塔云盾等)进行额外防护,确保漏洞无法被攻击者绕过。

转载地址:http://fkryk.baihongyu.com/

你可能感兴趣的文章
CentOS 6.5 配置IP地址的三种方法
查看>>
CentOS 6.9 yum 和源码安装htop,适用于centOS 7
查看>>
centos 64位 hadoop编译
查看>>
CentOS 7 / RHEL 7 上安装 LAMP + phpMyAdmin
查看>>
CentOS 7更换yum源
查看>>
CentOS 7 安装 postgreSQL 9.4
查看>>
centos 7安装docker
查看>>
CentOS 7 巨大变动之 systemd 取代 SysV的Init
查看>>
Centos 7 快速安装FTP服务
查看>>
centos 7 静态IP,指定DNS
查看>>
Centos 7.5 docker 容器怎么设置开机自启
查看>>
Centos 7.5 SSH改别的端口连接不上,只有默认端口才行(未解决)
查看>>
Centos 7.5 如何安装VMware Tools工具
查看>>
Centos 7.5 新磁盘创建和挂载XFS文件系统
查看>>
CentOS 7.X 系统安装及优化
查看>>
flask框架面向移动端的虚拟物品订购平台毕设源码+论文
查看>>
flask框架飞机订票管理系统(毕设源码+论文)
查看>>
flask框架高校助学及勤工俭学管理系统(毕设源码+论文)
查看>>
flask框架高校图书管理系统设计与实现(毕设源码+论文)
查看>>
flask框架高校招生预报管理系统(毕设源码+论文)
查看>>