本申请公开了一种防御文件上传验证绕过的方法,在对待上传文件进行上传验证时,首先得到去除后缀的文件名,并检测该文件名中是否存在与目标后缀字符串相同的后缀字符串,并在发现存在与该目标后缀字符串相同的后缀字符串时,拒绝该待上传文件的上传。区别于现有技术仅对最末尾后缀进行上传验证的方式,本申请还对隐藏于文件名中的后缀字符串进行检测,能够有效的对现有多种绕过方式实现精准检测,并适应多种服务器管理软件对文件的解析方式,可显著降低通过文件上传漏洞危害服务器和服务器中数据的可能性,安全性更高。本申请还同时公开了一种防御文件上传验证绕过的系统、装置及计算机可读存储介质,具有上述有益效果。
【技术实现步骤摘要】
一种防御文件上传验证绕过的方法、系统、装置及介质
本申请涉及服务器安全
,特别涉及一种防御文件上传验证绕过的方法、系统、装置及计算机可读存储介质。
技术介绍
当Web应用越来越为丰富的同时,Web服务器以其强大的计算能力、处理性能及其蕴含的较高价值逐渐成为主要攻击目标。SQL注入(把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令)、Webshell(Web入侵的脚本攻击工具)攻击、网页挂马等安全事件,频繁发生。企业等用户一般采用建立在数据链路层、网络层、传输层上的防火墙(Firewall)作为安全保障体系的第一道防线,但由于各种实际存在的问题,防御效果并不理想,因此产生了WAF。WAF,WebApplicationFirewall,Web应用防护系统,是一种通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的工作在应用层的产品。由于其工作在应用层,因此对同属于一层的Web应用能够更好的进行防护,WAF对来自Web应用程序客户端的各类请求进行内容检测和验证,确保其安全性与合法性,对非法的请求予以实时阻断,从而对各类网站站点进行有效防护。虽然WAF相较于传统防火墙有了长足的进步,但依然会存在一些漏洞,导致被恶意文件入侵,利用Web服务器的文件上传漏洞将一个恶意的可执行文件成功上传至Web服务器,就是其中一种最快最直接的获得服务器权限的方法。该漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。文件上传这个功能本身没有问题,有问题的是文件上传后,Web服务器怎么处理、解释文件。如果服务器的处理逻辑不够安全,就会导致上传的文件被web容器解释执行,从而造成严重的后果。主流架构下的Web服务器在对一个上传的文件进行检测时,通常是基于待上传文件的后缀来判断该文件所属的类型是否为自身允许接收的文件类型,其中,后缀通常为位于文件名最后的“.xxx”,即通过判断“xxx”是否处于白名单或黑名单中的方式来允许上传或拒绝上传操作的执行。但此种方式往往能够通过多种手段来绕过对待上传文件的真实后缀的检测,使其符合文件上传的判断逻辑,但在服务器真正解析这个文件时,就会使其成为一个真正的可执行的恶意文件,进而对Web服务器造成危害。以使用IIS早期版本的Web服务器为例,在其服务器管理程序的管理下,假定其只允许后缀格式为.jpg的图像文件上传,因此当一个网络图像的链接为www.xxx.com/xx.asp;.jpg时,会由于最后的“.jpg”通过文件上传检测,但在服务器对接收到这个文件进行解析时,会由于服务器默认不解析“;”号后面的内容,导致xx.asp;.jpg这个文件便被解析成asp文件。而当这个asp文件包含恶意内容时,就会在执行过程中对服务器及保存在服务器上的数据造成危害。因此,现有技术在不能很好的防止恶意文件通过多种后缀验证绕过手段来对Web服务器造成危害,如何克服这一技术缺陷,提供一种防后缀绕过能力更强的方法是本领域技术人员亟待解决的问题。
技术实现思路
本申请的目的是提供一种防御文件上传验证绕过的方法,在对待上传文件进行上传验证时,首先得到去除后缀的文件名,并检测该文件名中是否存在与目标后缀字符串相同的后缀字符串,并在发现存在与该目标后缀字符串相同的后缀字符串时,拒绝该待上传文件的上传。区别于现有技术仅对最末尾后缀进行上传验证的方式,本申请还对可能隐藏于文件名中的后缀字符串进行检测,能够有效的对已知绕过方式实现精准检测,并适应多种服务器管理软件对文件的解析方式,可显著降低通过文件上传漏洞危害服务器和服务器中数据的可能性,安全性更高。本申请的另一目的在于提供了一种防御文件上传验证绕过的系统、装置及计算机可读存储介质。为实现上述目的,本申请提供一种防御文件上传验证绕过的方法,包括:从文件上传请求中提取待上传文件除后缀外的文件名;检测所述文件名中是否存在与目标后缀字符串相同的后缀字符串;当所述文件名中存在所述目标后缀字符串时,拒绝对所述待上传文件执行上传操作。可选的,检测所述文件名中是否存在与目标后缀字符串相同的后缀字符串,包括:利用所述文件名中的后缀标识符分割所述文件名,得到各后缀字符串;分别比较每个所述后缀字符串与所述目标后缀字符串是否相同;对应的,当所述文件名中存在所述目标后缀字符串时,拒绝对所述待上传文件执行上传操作,包括:当任一所述后缀字符串与所述目标后缀字符串相同时,拒绝对所述待上传文件执行上传操作。可选的,利用所述文件名中的后缀标识符分割所述文件名,得到各后缀字符串,包括:在所述文件名的末尾处附加末尾标记;从所述末尾标记开始逐字符的向前搜寻所述后缀标识符,并为每个搜寻到的后缀标识符附加后缀识别标记;提取所述末尾标记与特殊后缀识别标记所夹的字符串和每对相邻所述后缀识别标记所夹的字符串,得到各所述后缀字符串;其中,所述特殊后缀识别标记为与所述末尾标记相邻的后缀识别标记。可选的,分别比较每个所述后缀字符串与所述目标后缀字符串是否相同,包括:依次比较每个所述后缀字符串与所述目标后缀字符串是否相同;对应的,当所述文件名中存在所述目标后缀字符串时,拒绝对所述待上传文件执行上传操作,包括:当当前后缀字符串与所述目标后缀字符串相同时,拒绝对所述待上传文件执行上传操作。可选的,该防御文件上传验证绕过的方法还包括:删去各所述后缀字符串中出现在预设干扰字符表中的各干扰字符,以使用去除各所述干扰字符后的后缀字符串来判断是否与所述目标后缀字符串相同。可选的,该防御文件上传验证绕过的方法还包括:将被拒绝执行上传操作的待上传文件通过预设路径上传至蜜罐服务器;其中,所述蜜罐服务器拥有与正常Web服务器相同的文件解析规则;利用所述蜜罐服务器解析接收到的文件,得到解析后文件,并记录所述解析后文件执行的操作;根据各所述操作是否对所述蜜罐终端造成危害判别是否发生误判。为实现上述目的,本申请还提供了一种防御文件上传验证绕过的系统,该系统包括:文件名提取单元,用于从文件上传请求中提取待上传文件除后缀外的文件名;目标后缀字符串检测单元,用于检测所述文件名中是否存在与目标后缀字符串相同的后缀字符串;拒绝上传单元,用于当所述文件名中存在所述目标后缀字符串时,拒绝对所述待上传文件执行上传操作。可选的,所述目标后缀字符串检测单元包括:后缀标识符分割子单元,用于利用所述文件名中的后缀标识符分割所述文件名,得到各后缀字符串;相同比较子单元,用于分别比较每个所述后缀字符串与所述目标后缀字符串是否相同;对应的,所述拒绝上传单元包括:第一拒绝上传子单元,用于当任一所述后缀字符串与所述目标后缀字符串相同时,拒绝对所述待上传文件执行上传操作。可选的,所述后缀标识符分割子单元包括:末尾标记附加模块,用于在所述文件名的末尾处附加末尾标记;后缀标识符搜寻及识别标记附加模块,用于从所述末尾标记开始逐字符的向前搜寻所述后缀标识符,并为每个搜寻到的后缀标识符附加后缀识别标记;后缀字符串提取模块,用于提取所述末尾标记与特殊后缀识别标记所夹的字符串和每对相邻所述后缀识别标记所夹的字符串,得到各所述后缀字符串;其中,所述特殊后缀识别标记为与所述末尾标记相邻的后缀识别本文档来自技高网...
【技术保护点】
1.一种防御文件上传验证绕过的方法,其特征在于,所述方法包括:从文件上传请求中提取待上传文件除后缀外的文件名;检测所述文件名中是否存在与目标后缀字符串相同的后缀字符串;当所述文件名中存在所述目标后缀字符串时,拒绝对所述待上传文件执行上传操作。
【技术特征摘要】
1.一种防御文件上传验证绕过的方法,其特征在于,所述方法包括:从文件上传请求中提取待上传文件除后缀外的文件名;检测所述文件名中是否存在与目标后缀字符串相同的后缀字符串;当所述文件名中存在所述目标后缀字符串时,拒绝对所述待上传文件执行上传操作。2.根据权利要求1所述的方法,其特征在于,检测所述文件名中是否存在与目标后缀字符串相同的后缀字符串,包括:利用所述文件名中的后缀标识符分割所述文件名,得到各后缀字符串;分别比较每个所述后缀字符串与所述目标后缀字符串是否相同;对应的,当所述文件名中存在所述目标后缀字符串时,拒绝对所述待上传文件执行上传操作,包括:当任一所述后缀字符串与所述目标后缀字符串相同时,拒绝对所述待上传文件执行上传操作。3.根据权利要求2所述的方法,其特征在于,利用所述文件名中的后缀标识符分割所述文件名,得到各后缀字符串,包括:在所述文件名的末尾处附加末尾标记;从所述末尾标记开始逐字符的向前搜寻所述后缀标识符,并为每个搜寻到的后缀标识符附加后缀识别标记;提取所述末尾标记与特殊后缀识别标记所夹的字符串和每对相邻所述后缀识别标记所夹的字符串,得到各所述后缀字符串;其中,所述特殊后缀识别标记为与所述末尾标记相邻的后缀识别标记。4.根据权利要求2所述的方法,其特征在于,分别比较每个所述后缀字符串与所述目标后缀字符串是否相同,包括:依次比较每个所述后缀字符串与所述目标后缀字符串是否相同;对应的,当所述文件名中存在所述目标后缀字符串时,拒绝对所述待上传文件执行上传操作,包括:当当前后缀字符串与所述目标后缀字符串相同时,拒绝对所述待上传文件执行上传操作。5.根据权利要求2至4任一项所述的方法,其特征在于,还包括:删去各所述后缀字符串中出现在预设干扰字符表中的各干扰字符,以使用去除各所述干扰字符后的后缀字符串来判断是否与所述目标后缀字符串相同。6.根据权利要求5所述的方法,其特征在于,还包括:将被拒绝执行上传操作的待上传文件通过预设路径上传至蜜罐服务器;其中,所述蜜罐服务器拥有与正常Web服务器相同的文件解析规则;利用所述蜜罐服务器解析接收到的文件,得到解析后文件,并记录所述解析后文件执行的操作;根据各所述操作是否对所述蜜罐终端造成危害判别是否发生误判。7.一种防御文件上传验证绕过的系统,其特征在于,所述系统包括:文件名提取单元,用于从文件上传请求中提取待上传文件除后缀外的文件名;目标后缀字符串检测单元,用于检测所述文件名中是否存在与目标后缀字符串相同的后缀字符串;拒绝上传单元,用于当所述文件名中存在所...
【专利技术属性】
技术研发人员:梁满,
申请(专利权)人:深信服科技股份有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。