#上传参数解析:
Content-disposition:一般不可更改
Name:表单参数值,不能更改(更改需要达到统一)
Filename:文件名,可以更改
Content-type:文件MIME,视情况更改
#常见绕过方法:
数据溢出-防匹配(xxx…)—垃圾数据溢出(容易将服务器弄崩溃)
Name前加“;”
符号变异-防匹配(‘ “ ;)
符号替换、去掉尾、去掉符号、双写/多写符号、、、、、
注:将图中单个双引号替换为单个单引号,甚至去掉符号,都可以实现绕过的功能。但将前面的引号去掉,还是会被拦截—跟安全软件自身的匹配规则有关。
或者根据前面的测试,将x.php写到引号外
;—–代表一个语句的结束
“x.jpg;.php”—-安全软件会当成x.jpg文件,但数据包又会解析成为一个服务器托管php文件
数据截断-防匹配(%00 ; 换行)
如果写:filename=”a.php%00.jpg”—-可以绕过安全软件成功上次,但数据包会解析成jpg文件,无法当成php后门。
换行—换行符(“n”)或者在数据包中直接回车服务器托管(属于将数据分块传输—但有限制条件)
数据重复-防匹配(参数多次)
递归循环(验证的次数)
白名单技术—–将x.php当成正常数据(重复数据)
“/”也可作为绕过条件
Upload_fuzz 测试
链接地址:
GitHub – fuzzdb-project/fuzzdb: Dictionary of attack patterns and primitives for black-box application fault injection and resource discovery.
GitHub – TheKingOfDuck/fuzzDicts: Web Pentesting Fuzz 字典,一个就够了。
#文件上传安全修复方案
后端验证:采用服务端验证模式
后缀检测:基于黑名单,白名单过滤
MIME检测:基于上传自带类型检测
内容检测:文件头,完整性检测
利用自带的函数:(upload中许多的过滤函数)
自定义函数过滤:黑白名单自定义、限定文件类型
WAF防护产品:宝塔、云盾、安全公司产品。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: nginx代理-解决CORS跨域问题: Access to XMLHttpRequest at XXX from XXX
全文目录,一步到位 1.前言简介 2. nignx角度解决方案 2.1 分析问题原因 2.1.1 翻译一波 2.1.2 分析及解决方案 2.2 nginx配置如下 2.2.1 增加一个代理配置 示例代码: 2.2.2 使用方式 2.3 问题解决 2.3.1 改…