CN114629688B - 一种基于动态测试的文件上传漏洞挖掘方法和系统 - Google Patents
一种基于动态测试的文件上传漏洞挖掘方法和系统 Download PDFInfo
- Publication number
- CN114629688B CN114629688B CN202210160109.6A CN202210160109A CN114629688B CN 114629688 B CN114629688 B CN 114629688B CN 202210160109 A CN202210160109 A CN 202210160109A CN 114629688 B CN114629688 B CN 114629688B
- Authority
- CN
- China
- Prior art keywords
- file
- uploading
- request message
- file uploading
- executable
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 75
- 238000012360 testing method Methods 0.000 title claims abstract description 57
- 238000005065 mining Methods 0.000 title claims abstract description 32
- 230000035772 mutation Effects 0.000 claims abstract description 52
- 238000001514 detection method Methods 0.000 claims abstract description 17
- 230000008713 feedback mechanism Effects 0.000 claims abstract description 17
- 230000000452 restraining effect Effects 0.000 claims abstract description 4
- 238000012545 processing Methods 0.000 claims description 23
- 230000001960 triggered effect Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 12
- 238000004422 calculation algorithm Methods 0.000 claims description 6
- 235000014510 cooky Nutrition 0.000 claims description 6
- 230000007246 mechanism Effects 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims description 6
- 238000012550 audit Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 230000009193 crawling Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 239000000523 sample Substances 0.000 description 4
- 230000007547 defect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000035515 penetration Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提出一种基于动态测试的文件上传漏洞挖掘方法和系统。其中方法包括:步骤S1、采用动态爬虫进行文件上传表单的信息收集,生成文件上传表单的配置文件;步骤S2、对文件上传请求报文的突变进行约束,包括:采用探测反馈机制生成的文件上传限制名单进行变异规则的第一层约束;设置基于不可执行文件属性组合关系的文件上传请求报文的变异规则;步骤S3、对所述文件上传请求报文进行构造与发送;步骤S4、文件可执行性验证。本发明提出的方案能够实现覆盖全面,准确、高效、低人工干预的挖掘Web应用系统中的文件上传漏洞,能覆盖Web应用系统中的所有文件上传表单,有效的避免无效测试用例的生成,极大的节省文件上传漏洞挖掘的时间。
Description
技术领域
本发明属于互联网领域,尤其涉及一种基于动态测试的文件上传漏洞挖掘方法和系统。
背景技术
随着互联网的迅猛发展,web应用的快速普及,其中共享用户所提供的内容已经成为了Web应用中不可或缺的组成部分,越来越多的Web应用提供了用户上传图片、视频、文档等内容材料的接口,由于Web应用的功能越发丰富,文件上传的接口越发多样,但同时,Web应用中存在的文件上传功能会带来安全问题,若Web应用没有对用户上传的文件类型或者内容进行安全检测,则用户可以上传任意文件到Web应用的服务器上,这些上传的文件可以是图片、文档,但恶意用户也有可能上传恶意脚本,网页后门到服务器上,从而窃取服务器中的信息,甚至对服务器造成破坏,因此防止恶意用户滥用该上传功能,及时发现Web应用中存在的文件上传漏洞,并及时添加相关的安全检测规则是至关重要的。
文件上传漏洞主要是指能够不受限制的上传可执行文件的漏洞,目前文件上传漏洞挖掘方法主要是基于人工进行代码审计和黑盒模糊测试两种方法,纯自动化的文件上传漏洞挖掘系统还未成熟应用。
Taekjin Lee等人在2020年的NDSS会议中提出了一种基于渗透测试的文件上传漏洞挖掘方法,通过人工提供文件上传表单配置信息,设置了13中常见的文件上传绕过方法采用组合的方式进行遍历测试,该方法是首次提出将黑盒模糊测试方法应用在文件上传漏洞挖掘上。
井俊双,刘新等人在2020年提出了一种基于WEB应用的文件上传漏洞检测方法及系统,通过遍历网站中存在的文件上传请求,利用Burp Suite集成平台对上传文件的文件扩展名或上传文件的内容类型字段进行修改,以生成客户端验证载荷和内容类型验证载荷对文件上传表单进行测试以判断是否存在文件上传漏洞。
现有的文件上传漏洞挖掘方法主要是基于人工代码审计和黑盒模糊测试。人工代码审计虽然准确率高,但是审计的效率较为底下,由于Web应用的功能越发多样以及代码量越发庞大,采用人工审计方法需要投入大量的人力并且不能够高效的完成大规模Web应用的漏洞挖掘。目前已有的基于黑盒测试进行文件上传漏洞挖掘的方法,需要人工提供文件上传入口点信息,并且测试用例生成的规则没有约束,面对对允许上传的文件类型有限制的上传点时,不能够调整测试用例生成规则,容易造成资源浪费,导致盲目测试,效率低下。
发明内容
为解决上述技术问题,本发明提出一种基于动态测试的文件上传漏洞挖掘的技术方案,采用探测反馈机制与不可执行文件属性组合关系进行突变规则约束,从渗透测试角度进行模糊测试的自动化文件上传漏洞挖掘方法以解决上述技术问题。
本发明第一方面公开了一种基于动态测试的文件上传漏洞挖掘方法;所述方法包括:
步骤S1、采用动态爬虫进行文件上传表单的信息收集,生成文件上传表单的配置文件;
步骤S2、对文件上传请求报文的突变进行约束,包括:
采用探测反馈机制生成的文件上传限制名单进行变异规则的第一层约束;
设置基于不可执行文件属性组合关系的文件上传请求报文的变异规则;
步骤S3、对所述文件上传请求报文进行构造与发送;
步骤S4、文件可执行性验证。
根据本发明第一方面的方法,在所述步骤S1中,所述采用动态爬虫进行文件上传表单的信息收集,生成文件上传表单的配置文件的具体方法包括:
采用动态爬虫进行文件上传表单的信息收集,触发网站中的所有的文件上传请求,记录文件上传请求URL地址以及参数信息,生成文件上传表单配置文件。
根据本发明第一方面的方法,在所述步骤S2中,所述采用探测反馈机制生成的文件上传类型限制名单进行变异规则的第一层约束的具体方法包括:
通过设置基础文件集合进行探测,根据反馈情况判断每个基础文件能否上传成功,自动化形成文件上传类型限制清单,进行变异规则的第一层约束。
根据本发明第一方面的方法,在所述步骤S2中,所述基础文件集合包括:JPG、PNG、GIF、PDF、ZIP、TAR、GZ和BMP文件类型。
根据本发明第一方面的方法,在所述步骤S2中,所述设置基于不可执行文件属性组合关系的文件上传请求报文的变异规则的具体方法包括:
在不可执行文件变异的操作组合中,只组合同一种不可执行文件属性的相关变异,不再生成不同不可执行文件相关属性的组合变异测试用例。
根据本发明第一方面的方法,在所述步骤S3中,所述对所述文件上传请求报文进行构造与发送的具体方法包括:
利用python中的第三方urllib2库,根据动态爬虫生成的配置文件的配置信息构造文件上传HTTP请求报文,所述HTTP请求报文中包含文件上传请求URL地址、保持上传登录状态的Cookie信息、上传文件的文件名、MIME类型以及上传文件内容;
通过python的队列机制将文件上传请求报文发送至服务器。
根据本发明第一方面的方法,在所述步骤S4中,所述文件可执行性验证的具体方法包括:
对于会在文件上传HTTP请求的响应报文中返回文件访问路径的Web应用系统,通过分析上传反馈的响应报文,提取出成功上传的文件的URL地址,利用python中urllib2库构造文件访问的HTTP请求包,判断文件中代码是否成功触发执行;对于不会返回文件访问路径的Web应用系统,在Web应该服务端架设文件监控系统,服务端通过MD5算法校验文件的是否确实成功上传,并且反馈文件的URL地址,最终通过构造HTTP请求报文访问文件判断文件代码是否成功触发从而判断文件是否上传成功以及是否能够触发造成任意代码执行。
本发明第二方面公开了一种基于动态测试的文件上传漏洞挖掘系统;所述系统包括:
第一处理模块,被配置为,采用动态爬虫进行文件上传表单的信息收集,生成文件上传表单的配置文件;
第二处理模块,被配置为,对文件上传请求报文的突变进行约束,包括:
采用探测反馈机制生成的文件上传限制名单进行变异规则的第一层约束;
设置基于不可执行文件属性组合关系的文件上传请求报文的变异规则;
第三处理模块,被配置为,对所述文件上传请求报文进行构造与发送;
第四处理模块,被配置为,文件可执行性验证。
根据本发明第二方面的系统,所述第一处理模块具体被配置为,所述采用动态爬虫进行文件上传表单的信息收集,生成文件上传表单的配置文件的具体方法包括:
采用动态爬虫进行文件上传表单的信息收集,触发网站中的所有的文件上传请求,记录文件上传请求URL地址以及参数信息,生成文件上传表单配置文件。
根据本发明第二方面的系统,所述第二处理模块具体被配置为,所述采用探测反馈机制生成的文件上传类型限制名单进行变异规则的第一层约束的具体方法包括:
通过设置基础文件集合进行探测,根据反馈情况判断每个基础文件能否上传成功,自动化形成文件上传类型限制清单,进行变异规则的第一层约束;
所述基础文件集合包括:JPG、PNG、GIF、PDF、ZIP、TAR、GZ和BMP文件类型;
所述设置基于不可执行文件属性组合关系的文件上传请求报文的变异规则的具体方法包括:
在不可执行文件变异的操作组合中,只组合同一种不可执行文件属性的相关变异,不再生成不同不可执行文件相关属性的组合变异测试用例。
根据本发明第二方面的系统,所述第三处理模块具体被配置为,所述对所述文件上传请求报文进行构造与发送的具体方法包括:
利用python中的第三方urllib2库,根据动态爬虫生成的配置文件的配置信息构造文件上传HTTP请求报文,所述HTTP请求报文中包含文件上传请求URL地址、保持上传登录状态的Cookie信息、上传文件的文件名、MIME类型以及上传文件内容;
通过python的队列机制将文件上传请求报文发送至服务器。
根据本发明第二方面的系统,所述第四处理模块具体被配置为,所述文件可执行性验证的具体方法包括:
对于会在文件上传HTTP请求的响应报文中返回文件访问路径的Web应用系统,通过分析上传反馈的响应报文,提取出成功上传的文件的URL地址,利用python中urllib2库构造文件访问的HTTP请求包,判断文件中代码是否成功触发执行;对于不会返回文件访问路径的Web应用系统,在Web应该服务端架设文件监控系统,服务端通过MD5算法校验文件的是否确实成功上传,并且反馈文件的URL地址,最终通过构造HTTP请求报文访问文件判断文件代码是否成功触发从而判断文件是否上传成功以及是否能够触发造成任意代码执行。
本发明第三方面公开了一种电子设备。电子设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时,实现本公开第一方面中任一项的一种基于动态测试的文件上传漏洞挖掘方法中的步骤。
本发明第四方面公开了一种计算机可读存储介质。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,实现本公开第一方面中任一项的一种基于动态测试的文件上传漏洞挖掘方法中的步骤。
可见,本发明提出的方案,(1)利用所述方法可以实现自动化的文件上传入口点信息收集,弥补人工查询网站文件上传表单效率低下,覆盖面不全的问题;(2)利用所述方法可以发现网站文件上传表单文件类型限制,反馈变异规则,避免出现盲目探测,资源浪费;(3)利用所述方法可以有效提高测试用例的有效性,通过变异约束,避免大量无效测试用例的生成,极大的提高漏洞测试的效率。(4)利用所述方法可以有效提高文件上传漏洞挖掘的准确性和测试效率。
综上,本发明提出的方案能够实现覆盖全面,准确、高效、低人工干预的挖掘Web应用系统中的文件上传漏洞,能够覆盖Web应用系统中的所有文件上传表单,有效的避免无效测试用例的生成,极大的节省文件上传漏洞挖掘的时间。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为根据本发明实施例的一种基于动态测试的文件上传漏洞挖掘方法的流程图;
图2为根据本发明实施例的一种基于动态测试的文件上传漏洞挖掘系统的结构图;
图3为根据本发明实施例的一种电子设备的结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例只是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明第一方面公开了一种基于动态测试的文件上传漏洞挖掘方法。图1为根据本发明实施例的一种基于动态测试的文件上传漏洞挖掘方法的流程图,如图1所示,所述方法包括:
步骤S1、采用动态爬虫进行文件上传表单的信息收集,生成文件上传表单的配置文件;
步骤S2、对文件上传请求报文的突变进行约束,包括:
采用探测反馈机制生成的文件上传限制名单进行变异规则的第一层约束;
设置基于不可执行文件属性组合关系的文件上传请求报文的变异规则;
步骤S3、对所述文件上传请求报文进行构造与发送;
步骤S4、文件可执行性验证。
不可执行文件:系统解析器以及Web解析器不能够解析执行的文件。
传统的采用人工点击和审计的方式进行文件上传表单的信息收集,由于网站中可能存在多个文件上传表单,存在人工收集效率较低,文件上传表单收集不全面的问题。
在步骤S1,采用动态爬虫进行文件上传表单的信息收集,生成文件上传表单的配置文件。
在一些实施例中,在所述步骤S1中,所述采用动态爬虫进行文件上传表单的信息收集,生成文件上传表单的配置文件的具体方法包括:
采用动态爬虫进行文件上传表单的信息收集,触发网站中的所有的文件上传请求,记录文件上传请求URL地址以及参数信息,生成文件上传表单配置文件。
具体地,动态爬虫通过用户提供的登录信息进行模拟登录,保持用户登录状态,能够更全面的覆盖网站中的页面,通过无头浏览器(headless browser)进行页面的信息收集,达到具有触发ajax、用户交互和异步之类的浏览能力,通过设置URL的相似判断策略来避免无限爬网和循环爬网问题的出现提高全站遍历的效率,即两个URL中协议、域名、虚拟路径部分相同时,当参数名都相同时,若参数值只有数字上的差异,则认为这两个URL是相似的,例如和是相似的,在爬虫爬网的过程中只爬取其中一个URL的信息,能够有效的提高爬虫爬网的效率,发现文件上传表单后获取上传报文中的URL地址以及参数配置,生成配置文件,为后续测试提供先验数据。用动态爬虫进行文件上传表单的信息收集,能够克服目前采用人工信息收集方式所导致的效率低下,覆盖面不全的缺陷。
在步骤S2,对文件上传请求报文的突变进行约束,包括:
采用探测反馈机制生成的文件上传限制名单进行变异规则的第一层约束;
设置基于不可执行文件属性组合关系的文件上传请求报文的变异规则。
在一些实施例中,在所述步骤S2中,所述采用探测反馈机制生成的文件上传类型限制名单进行变异规则的第一层约束的具体方法包括:
通过设置基础文件集合进行探测,根据反馈情况判断每个基础文件能否上传成功,自动化形成文件上传类型限制清单,进行变异规则的第一层约束。
在一些实施例中,在所述步骤S2中,所述基础文件集合包括:JPG、PNG、GIF、PDF、ZIP、TAR、GZ和BMP文件类型。
在一些实施例中,在所述步骤S2中,所述设置基于不可执行文件属性组合关系的文件上传请求报文的变异规则的具体方法包括:
在不可执行文件变异的操作组合中,只组合同一种不可执行文件属性的相关变异,不再生成不同不可执行文件相关属性的组合变异测试用例。
具体地,对于上传文件的变异,为保证上传文件内容保持正常的语义,当前主要是基于上传请求报文中上传文件后缀,上传请求content_type字段类型,上传文件内容三个方面进行变异。针对上述3个部分的内容,采用Taekjin Lee等人提出的FUSE系统中的变异操作如表1所示:
表1
变异的操作不限于13种,本申请所提出的方法具有兼容性,即兼容所有通过修改文件名、MIME类型以及文件内容进行文件上传绕过的方法。
(1) 采用探测反馈机制生成的文件上传限制名单进行变异规则的第一层约束;
由于大量网站不可避免的存在一些正常的用户上传需求,例如用户对于个人信息中头像的修改,Wordpress、Jmoola等CMS中插件的上传更新,求职网站中求职人员简历的上传需求等,发现了这些上传需求点都或多或少的存在一定的共性,即对上传的文件类型进行了很大程度的限制,头像的上传限制了只能上传JPG、PNG、GIF等图片类型文件,插件的上传限制了只允许上传ZIP、RAR、TAR.GZ等压缩包类型文件,简历的上传限制了只能上传PDF、DOC等文本类型文件。分析了大量的CMS中这类上传需求,发现这些上传需求点的限制大都是采用白名单的方式进行限制,例如某个上传请求只允许上传PDF后缀文件,在整个测试过程中,测试用例变异的状态空间中除了PDF类型文件后缀以及contnet_type设置为“application/pdf”的变异都被认为是无效的变异,那么整个状态空间中无效的测试用例将会远远大于有效的测试用例,严重影响测试的效率。
设置7类最常见的基础文件(JPG,PNG,GIF,PDF,ZIP,TAR.GZ,BMP)
--不允许上传--,验证-是否成功,执行与否,是否是漏洞,结合4类seed文件(PHP,JS.HTML,XHTML)用于探测发现上传需求点的文件类型限制。
通过发送基础文件的上传请求报文,根据反馈情况判断每个基础文件能否上传成功,基于探测的反馈结果,对应生成该文件上传表单的黑白名单,即判断出该文件上传表单的文件类型限制,并反馈到突变规则中,对突变进行第一层的约束。例如在基础探测中发现JPG文件被纳入到了黑名单中,我们依此认为无论是文件后缀为”.jpg”, content_type字段值为”image/jpeg”,还是在上传请求报文中文件内容部分插入JPG的相关数据的变异操作都是无效变异。
采用探测反馈机制生成的文件上传限制名单进行变异规则的第一层约束,克服原有基于黑盒测试进行文件上传漏洞挖掘方法中缺乏服务端信息,盲目测试导致效率低下的缺陷。
(2) 设置基于不可执行文件属性组合关系的文件上传请求报文的变异规则;
原有的Taekjin Lee等人提出的黑盒测试通过设置不同类型的变异操作的冲突来实现对变异空间进行简单的约束,例如适用于PHP种子的变异操作为M1,M2,M3,则在未设置变异冲突规则的情况下,形成的变异链表如下。
PHP:{∅, M1, M2, M3, M1M2, M1M3, M2M3, M1M2M3}
若变异操作M1和M2互相冲突或者变异操作M1包含于M2,那么根据M1M2组合的变异操作则认为是无效变异,以此对变异空间进行一个简单的约束,此时的变异链表如下。
PHP:{∅, M1, M2, M3, M1M2, M1M3, M2M3, M1M2M3}
由于文件上传绕过的方法复杂多样,例如M1,M2和M3分别包含了6中文件类型,因此需要进一步对变异进行约束,减少无效变异测试用例的生成。由于不可执行文件在文件上传中只会存在允许该类型不可执行文件上传和禁止该类型上传两种情况,不存在对文件名、MIME类型以及文件头数据的校验,即例如文件后缀名为“.png”,content_type字段值为”image/jpeg”同时在文件内容中添加ZIP文件头数据不会被禁止上传,以此设置基于不可执行文件的变异规则约束,即在不可执行文件变异的操作组合中,只组合同一种不可执行文件的相关变异,不再生成不同不可执行文件相关属性的组合变异测试用例,例如变异操作的组合中,content_type字段值为 “image/jpeg”与添加ZIP文件的文件头前缀的组合变异被判断为无效变异。
在步骤S3,对所述文件上传请求报文进行构造与发送。
在一些实施例中,在所述步骤S3中, 所述对所述文件上传请求报文进行构造与发送的具体方法包括:
利用python中的第三方urllib2库,根据动态爬虫生成的配置文件的配置信息构造文件上传HTTP请求报文,所述HTTP请求报文中包含文件上传请求URL地址、保持上传登录状态的Cookie信息、上传文件的文件名、MIME类型以及上传文件内容;
通过python的队列机制将文件上传请求报文发送至服务器。
在步骤S4,文件可执行性验证。
在一些实施例中,在所述步骤S4中,所述文件可执行性验证的具体方法包括:
对于会在文件上传HTTP请求的响应报文中返回文件访问路径的Web应用系统,通过分析上传反馈的响应报文,提取出成功上传的文件的URL地址,利用python中urllib2库构造文件访问的HTTP请求包,判断文件中代码是否成功触发执行;对于不会返回文件访问路径的Web应用系统,在Web应该服务端架设文件监控系统,服务端通过MD5算法校验文件的是否确实成功上传,并且反馈文件的URL地址,最终通过构造HTTP请求报文访问文件判断文件代码是否成功触发从而判断文件是否上传成功以及是否能够触发造成任意代码执行。
本发明第二方面公开了一种基于动态测试的文件上传漏洞挖掘系统。图2为根据本发明实施例的一种基于动态测试的文件上传漏洞挖掘系统的结构图;如图2所示,所述系统200包括:
第一处理模块201,被配置为,采用动态爬虫进行文件上传表单的信息收集,生成文件上传表单的配置文件;
第二处理模块202,被配置为,对文件上传请求报文的突变进行约束,包括:
采用探测反馈机制生成的文件上传限制名单进行变异规则的第一层约束;
设置基于不可执行文件属性组合关系的文件上传请求报文的变异规则;
第三处理模块203,被配置为,对所述文件上传请求报文进行构造与发送;
第四处理模块204,被配置为,文件可执行性验证。
根据本发明第二方面的系统,所述第一处理模块201具体被配置为,所述采用动态爬虫进行文件上传表单的信息收集,生成文件上传表单的配置文件的具体方法包括:
采用动态爬虫进行文件上传表单的信息收集,触发网站中的所有的文件上传请求,记录文件上传请求URL地址以及参数信息,生成文件上传表单配置文件。
根据本发明第二方面的系统,所述第二处理模块202具体被配置为,所述采用探测反馈机制生成的文件上传类型限制名单进行变异规则的第一层约束的具体方法包括:
通过设置基础文件集合进行探测,根据反馈情况判断每个基础文件能否上传成功,自动化形成文件上传类型限制清单,进行变异规则的第一层约束;
所述基础文件集合包括:JPG、PNG、GIF、PDF、ZIP、TAR、GZ和BMP文件类型;
所述设置基于不可执行文件属性组合关系的文件上传请求报文的变异规则的具体方法包括:
在不可执行文件变异的操作组合中,只组合同一种不可执行文件属性的相关变异,不再生成不同不可执行文件相关属性的组合变异测试用例。
根据本发明第二方面的系统,所述第三处理模块203具体被配置为,所述对所述文件上传请求报文进行构造与发送的具体方法包括:
利用python中的第三方urllib2库,根据动态爬虫生成的配置文件的配置信息构造文件上传HTTP请求报文,所述HTTP请求报文中包含文件上传请求URL地址、保持上传登录状态的Cookie信息、上传文件的文件名、MIME类型以及上传文件内容;
通过python的队列机制将文件上传请求报文发送至服务器。
根据本发明第二方面的系统,所述第四处理模块204具体被配置为,所述文件可执行性验证的具体方法包括:
对于会在文件上传HTTP请求的响应报文中返回文件访问路径的Web应用系统,通过分析上传反馈的响应报文,提取出成功上传的文件的URL地址,利用python中urllib2库构造文件访问的HTTP请求包,判断文件中代码是否成功触发执行;对于不会返回文件访问路径的Web应用系统,在Web应该服务端架设文件监控系统,服务端通过MD5算法校验文件的是否确实成功上传,并且反馈文件的URL地址,最终通过构造HTTP请求报文访问文件判断文件代码是否成功触发从而判断文件是否上传成功以及是否能够触发造成任意代码执行。
本发明第三方面公开了一种电子设备。电子设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时,实现本公开第一方面中任一项的一种基于动态测试的文件上传漏洞挖掘方法中的步骤。
图3为根据本发明实施例的一种电子设备的结构图,如图3所示,电子设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、近场通信(NFC)或其他技术实现。该电子设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该电子设备的输入装置可以是显示屏上覆盖的触摸层,也可以是电子设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本公开的技术方案相关的部分的结构图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本发明第四方面公开了一种计算机可读存储介质。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,实现本公开第一方面中任一项的一种基于动态测试的文件上传漏洞挖掘方法中的步骤中的步骤。
综上,本发明提出的方案能够实现覆盖全面,准确、高效、低人工干预的挖掘Web应用系统中的文件上传漏洞,能够覆盖Web应用系统中的所有文件上传表单,有效的避免无效测试用例的生成,极大的节省文件上传漏洞挖掘的时间。
请注意,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (5)
1.一种基于动态测试的文件上传漏洞挖掘方法,其特征在于,所述方法包括:
步骤S1、采用动态爬虫进行文件上传表单的信息收集,生成文件上传表单的配置文件;
步骤S2、对文件上传请求报文的突变进行约束,包括:
采用探测反馈机制生成的文件上传限制名单进行变异规则的第一层约束;
设置基于不可执行文件属性组合关系的文件上传请求报文的变异规则;
步骤S3、对所述文件上传请求报文进行构造与发送;
步骤S4、文件可执行性验证;
其中,在所述步骤S2中,所述采用探测反馈机制生成的文件上传类型限制名单进行变异规则的第一层约束的具体方法包括:
通过设置基础文件集合进行探测,根据反馈情况判断每个基础文件能否上传成功,自动化形成文件上传类型限制清单,进行变异规则的第一层约束;
所述基础文件集合包括:JPG、PNG、GIF、PDF、ZIP、TAR、GZ和BMP文件类型;
其中,在所述步骤S2中,所述设置基于不可执行文件属性组合关系的文件上传请求报文的变异规则的具体方法包括:
在不可执行文件变异的操作组合中,只组合同一种不可执行文件属性的相关变异,不再生成不同不可执行文件相关属性的组合变异测试用例;
其中,在所述步骤S3中,所述对所述文件上传请求报文进行构造与发送的具体方法包括:
利用python中的第三方urllib2库,根据动态爬虫生成的配置文件的配置信息构造文件上传HTTP请求报文,所述HTTP请求报文中包含文件上传请求URL地址、保持上传登录状态的Cookie信息、上传文件的文件名、MIME类型以及上传文件内容;
通过python的队列机制将文件上传请求报文发送至服务器;
其中,在所述步骤S4中,所述文件可执行性验证的具体方法包括:
对于会在文件上传HTTP请求的响应报文中返回文件访问路径的Web应用系统,通过分析上传反馈的响应报文,提取出成功上传的文件的URL地址,利用python中urllib2库构造文件访问的HTTP请求包,判断文件中代码是否成功触发执行;对于不会返回文件访问路径的Web应用系统,在Web应用系统架设文件监控系统,Web应用系统通过MD5算法校验文件的是否确实成功上传,并且反馈文件的URL地址,最终通过构造HTTP请求报文访问文件判断文件代码是否成功触发从而判断文件是否上传成功以及是否能够触发造成任意代码执行。
2.根据权利要求1所述的一种基于动态测试的文件上传漏洞挖掘方法,其特征在于,在所述步骤S1中,所述采用动态爬虫进行文件上传表单的信息收集,生成文件上传表单的配置文件的具体方法包括:
采用动态爬虫进行文件上传表单的信息收集,触发网站中的所有的文件上传请求,记录文件上传请求URL地址以及参数信息,生成文件上传表单配置文件。
3.一种基于动态测试的文件上传漏洞挖掘系统,其特征在于,所述系统包括:
第一处理模块,被配置为,采用动态爬虫进行文件上传表单的信息收集,生成文件上传表单的配置文件;
第二处理模块,被配置为,对文件上传请求报文的突变进行约束,包括:
采用探测反馈机制生成的文件上传限制名单进行变异规则的第一层约束;
设置基于不可执行文件属性组合关系的文件上传请求报文的变异规则;
第三处理模块,被配置为,对所述文件上传请求报文进行构造与发送;
第四处理模块,被配置为,文件可执行性验证;
其中,所述第二处理模块具体被配置为,所述采用探测反馈机制生成的文件上传类型限制名单进行变异规则的第一层约束的具体方法包括:
通过设置基础文件集合进行探测,根据反馈情况判断每个基础文件能否上传成功,自动化形成文件上传类型限制清单,进行变异规则的第一层约束;
所述基础文件集合包括:JPG、PNG、GIF、PDF、ZIP、TAR、GZ和BMP文件类型;
其中,所述第二处理模块具体被配置为,所述设置基于不可执行文件属性组合关系的文件上传请求报文的变异规则的具体方法包括:
在不可执行文件变异的操作组合中,只组合同一种不可执行文件属性的相关变异,不再生成不同不可执行文件相关属性的组合变异测试用例;
其中,所述第三处理模块具体被配置为,所述对所述文件上传请求报文进行构造与发送的具体方法包括:
利用python中的第三方urllib2库,根据动态爬虫生成的配置文件的配置信息构造文件上传HTTP请求报文,所述HTTP请求报文中包含文件上传请求URL地址、保持上传登录状态的Cookie信息、上传文件的文件名、MIME类型以及上传文件内容;
通过python的队列机制将文件上传请求报文发送至服务器;
其中,所述第三处理模块具体被配置为,所述文件可执行性验证的具体方法包括:
对于会在文件上传HTTP请求的响应报文中返回文件访问路径的Web应用系统,通过分析上传反馈的响应报文,提取出成功上传的文件的URL地址,利用python中urllib2库构造文件访问的HTTP请求包,判断文件中代码是否成功触发执行;对于不会返回文件访问路径的Web应用系统,在Web应用系统架设文件监控系统,Web应用系统通过MD5算法校验文件的是否确实成功上传,并且反馈文件的URL地址,最终通过构造HTTP请求报文访问文件判断文件代码是否成功触发从而判断文件是否上传成功以及是否能够触发造成任意代码执行。
4.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,实现权利要求1至2中任一项所述的一种基于动态测试的文件上传漏洞挖掘方法中的步骤。
5.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现权利要求1至2中任一项所述的一种基于动态测试的文件上传漏洞挖掘方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210160109.6A CN114629688B (zh) | 2022-02-22 | 2022-02-22 | 一种基于动态测试的文件上传漏洞挖掘方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210160109.6A CN114629688B (zh) | 2022-02-22 | 2022-02-22 | 一种基于动态测试的文件上传漏洞挖掘方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114629688A CN114629688A (zh) | 2022-06-14 |
CN114629688B true CN114629688B (zh) | 2024-03-15 |
Family
ID=81900767
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210160109.6A Active CN114629688B (zh) | 2022-02-22 | 2022-02-22 | 一种基于动态测试的文件上传漏洞挖掘方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114629688B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115865427B (zh) * | 2022-11-14 | 2023-07-21 | 重庆伏特猫科技有限公司 | 一种基于数据路由网关的数据采集与监控方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104063309A (zh) * | 2013-03-22 | 2014-09-24 | 南京理工大学常熟研究院有限公司 | 基于模拟攻击的Web应用程序漏洞检测方法 |
CN104881608A (zh) * | 2015-05-21 | 2015-09-02 | 北京工业大学 | 一种基于模拟浏览器行为的xss漏洞检测方法 |
CN112182583A (zh) * | 2020-09-27 | 2021-01-05 | 国网山东省电力公司电力科学研究院 | 一种基于web应用的文件上传漏洞检测方法及系统 |
CN112733157A (zh) * | 2021-04-01 | 2021-04-30 | 中国人民解放军国防科技大学 | 一种基于不可执行目录的文件上传方法、系统和介质 |
CN113114680A (zh) * | 2021-04-13 | 2021-07-13 | 中国工商银行股份有限公司 | 用于文件上传漏洞的检测方法和检测装置 |
CN113420300A (zh) * | 2021-06-21 | 2021-09-21 | 福建天晴数码有限公司 | 一种检测和防御文件上传漏洞的方法及系统 |
CN113595981A (zh) * | 2021-06-25 | 2021-11-02 | 新浪网技术(中国)有限公司 | 上传文件威胁检测方法及装置、计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8185953B2 (en) * | 2007-03-08 | 2012-05-22 | Extrahop Networks, Inc. | Detecting anomalous network application behavior |
-
2022
- 2022-02-22 CN CN202210160109.6A patent/CN114629688B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104063309A (zh) * | 2013-03-22 | 2014-09-24 | 南京理工大学常熟研究院有限公司 | 基于模拟攻击的Web应用程序漏洞检测方法 |
CN104881608A (zh) * | 2015-05-21 | 2015-09-02 | 北京工业大学 | 一种基于模拟浏览器行为的xss漏洞检测方法 |
CN112182583A (zh) * | 2020-09-27 | 2021-01-05 | 国网山东省电力公司电力科学研究院 | 一种基于web应用的文件上传漏洞检测方法及系统 |
CN112733157A (zh) * | 2021-04-01 | 2021-04-30 | 中国人民解放军国防科技大学 | 一种基于不可执行目录的文件上传方法、系统和介质 |
CN113114680A (zh) * | 2021-04-13 | 2021-07-13 | 中国工商银行股份有限公司 | 用于文件上传漏洞的检测方法和检测装置 |
CN113420300A (zh) * | 2021-06-21 | 2021-09-21 | 福建天晴数码有限公司 | 一种检测和防御文件上传漏洞的方法及系统 |
CN113595981A (zh) * | 2021-06-25 | 2021-11-02 | 新浪网技术(中国)有限公司 | 上传文件威胁检测方法及装置、计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
基于Web系统的文件上传漏洞解析;巨腾飞;岳剑晖;;网络安全技术与应用(05);第14-15页 * |
文件上传漏洞研究与实践;黄志华;王子凯;徐玉华;李云龙;孙伟;;信息安全研究(02);第151-158页 * |
Also Published As
Publication number | Publication date |
---|---|
CN114629688A (zh) | 2022-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Burnett et al. | Encore: Lightweight measurement of web censorship with cross-origin requests | |
CN106302337B (zh) | 漏洞检测方法和装置 | |
Barth et al. | Secure content sniffing for web browsers, or how to stop papers from reviewing themselves | |
US9344446B2 (en) | Systems and methods for malware detection and scanning | |
WO2016173200A1 (zh) | 用于检测恶意网址的方法和系统 | |
US8752183B1 (en) | Systems and methods for client-side vulnerability scanning and detection | |
Shahriar et al. | Client-side detection of cross-site request forgery attacks | |
Barua et al. | Server side detection of content sniffing attacks | |
Li et al. | WebShield: Enabling Various Web Defense Techniques without Client Side Modifications. | |
US12013971B2 (en) | System and method for dynamic management of private data | |
JP2008204425A (ja) | Urlの類似性分析による処理省略判定プログラム、装置 | |
Wang et al. | Research on web application security vulnerability scanning technology | |
US10701087B2 (en) | Analysis apparatus, analysis method, and analysis program | |
US20130074160A1 (en) | Method of controlling information processing system, computer-readable recording medium storing program for controlling apparatus | |
CN114666104A (zh) | 一种渗透测试方法、系统、计算机设备以及存储介质 | |
CN114629688B (zh) | 一种基于动态测试的文件上传漏洞挖掘方法和系统 | |
Li et al. | LogicScope: Automatic discovery of logic vulnerabilities within web applications | |
CN108427639B (zh) | 自动化测试方法、应用服务器及计算机可读存储介质 | |
US20160261715A1 (en) | System and method for securing a web server | |
Ham et al. | Big Data Preprocessing Mechanism for Analytics of Mobile Web Log. | |
Nguyen et al. | Systematic analysis of web browser caches | |
JP6840708B2 (ja) | ウェブリソースの変更を検出するシステムおよび方法 | |
WO2020224108A1 (zh) | Url拦截转换方法、装置以及计算机设备 | |
KR20180009510A (ko) | 공격 문자열 생성 방법 및 장치 | |
Caballero et al. | Extracting models of security-sensitive operations using string-enhanced white-box exploration on binaries |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |