其他分享
首页 > 其他分享> > 2021/12/3文件上传-WAF绕过和修复

2021/12/3文件上传-WAF绕过和修复

作者:互联网

在这里插入图片描述

配置虚拟机

less-2
我这还没操作呢就被拦截了o(*≧▽≦)ツ┏━┓,而且我还没启动safedog
在这里插入图片描述

在这里插入图片描述
疑惑了不知道关哪里
换个关卡把
less3

上传参数名解析:明确哪些东西能修改?
在这里插入图片描述
Content-Disposition:响应头指示回复的内容该以何种形式展示(表单-一般可更改)
表单名称(这里一般不能改,和前端代码一致)

常用绕过思路:

1.数据溢出

less3是黑名单检测
尝试filename的内容进行溢出
注意这里只是单纯的改后缀php5也不会被安全狗拦截,绕过只是演示思路
在这里插入图片描述
垃圾数据后加“;”进行分隔
name与filename之间进行溢出
在这里插入图片描述

Content-Disposition与name之间
在这里插入图片描述

2.符号变异-防匹配(' " ;)

原理:(当时视频)推测安全狗是检测提取字符串内容检测,但是数据包删掉引号也能上传,利用这一点
在这里插入图片描述
在这里插入图片描述

filename=" xx.php
filename="x x.php
filename=' xx.php
filename='x x.php

3. 数据截断-防匹配(%00 ; 换行;/)

文件名中加入图片后缀提前用分号截断,文件会上传后面的,让我想起了参数污染
这里换成php就不行了,所以还要考虑代码方面,这里没办法白名单的打不开
在这里插入图片描述
文件名中用%00url编码截断

filename="shell.php%00xx.jpg" 注意%00要编码

数据换行截断
在这里插入图片描述

重复数据(参数多次)

重复filename,前面的filename为可接受的文件格式,最后一个为php文件格式,前面的重复多次

filename中配合其他参数
在这里插入图片描述
** 配合目录命名绕过**

filename="/jpeg;x.php"
filename="/jpeg;/x.php"

。。。


FUZZ字典

参考:https://www.cnblogs.com/yunyunyu/p/15488002.html

清除所有变量在这里插入图片描述
将filename的值设置为变量
在这里插入图片描述
payload加载字典
在这里插入图片描述

文件上传安全修复方案

1.后端验证:采用服务端验证模式(不采用前端验证)
2.三种检查方式同时进行
后缀检测:基于黑名单,白名单过滤
MIME 检测:基于上传自带类型检测
内容检测:文件头,完整性检测
3.自带函数过滤
如:getimagesize()函数;exif_imagetype()函数

标签:12,WAF,filename,截断,2021,检测,绕过,php,上传
来源: https://www.cnblogs.com/bigcrucian/p/15912904.html