CN113656302A - Waf规则自动测试方法、系统、存储介质及终端设备 - Google Patents
Waf规则自动测试方法、系统、存储介质及终端设备 Download PDFInfo
- Publication number
- CN113656302A CN113656302A CN202110935020.8A CN202110935020A CN113656302A CN 113656302 A CN113656302 A CN 113656302A CN 202110935020 A CN202110935020 A CN 202110935020A CN 113656302 A CN113656302 A CN 113656302A
- Authority
- CN
- China
- Prior art keywords
- http request
- thread group
- request
- waf
- thread
- 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.)
- Withdrawn
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 137
- 238000000034 method Methods 0.000 claims abstract description 54
- 238000012545 processing Methods 0.000 claims description 33
- 238000004088 simulation Methods 0.000 claims description 14
- 238000010998 test method Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 8
- 230000002159 abnormal effect Effects 0.000 claims description 5
- 238000013024 troubleshooting Methods 0.000 abstract description 3
- 238000013522 software testing Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0209—Architectural arrangements, e.g. perimeter networks or demilitarized zones
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种WAF规则自动测试方法、系统、存储介质及终端设备,属于软件测试的技术领域;该方法包括:在JMeter测试工具中添加HTTP请求默认值及线程组,且在线程组的线程中添加HTTP请求,获取对Web业务进行攻击的攻击请求;在JMeter测试工具中设置CVS数据文件,攻击请求经CVS数据文件进行参数化设置;在程组中设置断言组件,判断断言组件的所有断言信息是否均断言成功;若是,则判定与HTTP请求相对应的WAF规则用例执行成功。本发明实现测试用的攻击请求参数可合并发送及可变化设置,可规避测试人员因怕在每次编写测试参数时出错而需花大量时间排查的问题,以使本发明方法较传统WAF规则测试方法具有更佳地测试效率及测试准确性。
Description
技术领域
本发明涉及软件测试的技术领域,特别是涉及一种WAF规则自动测试方法、系统、存储介质及终端设备。
背景技术
Apache JMeter是Apache组织开发的基于Java的测试工具;其用于对软件做压测,最初被设计用于Web应用测试,但后来扩展到其他测试领域。JMeter可以用来做静态和动态的测试,比如Java小程序、数据库、FTP服务器等,且可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力下测试它们的强度和分析整体性能。此外,JMeter能够对应用程序做功能上的回归测试,通过创建带有断言的脚本来验证程序返回了期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。随着互联网的迅速发展,Web安全威胁也是越来越严重,Web应用防火墙应运而生。Web应用防火墙(简称:WAF)是通过执行一些列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品,用于对来自客户端的请求进行检测,确保其安全性。
针对WAF规则测试方法,需在测试过程中对测试参数进行配置,其配置的内容基本上包括请求数据:请求URL、请求方法、请求头、请求体等。然而,现有测试方法需对测试请求逐一发送,且测试数据单一;此外,测试人员在每次编写测试参数时易出错,诸如多一个符号、符号不正确或者入参有误等,需花大量时间去排查错误,从而影响WAF规则测试的测试效率以及测试准确性。
发明内容
基于此,本发明提供了一种WAF规则自动测试方法、系统、存储介质及终端设备,有效解决目前人工在测试WAF规则时存在的测试效率低及测试准确性差的问题。
本发明实施例提供一种WAF规则自动测试方法,具体技术方案如下:
一种WAF规则自动测试方法,所述方法包括:
在JMeter测试工具中添加HTTP请求默认值及线程组,且在所述线程组的线程中添加HTTP请求,获取对Web业务进行攻击的攻击请求;
在JMeter测试工具中设置CVS数据文件,所述攻击请求经所述CVS数据文件进行参数化设置;
在所述线程组中设置断言组件,判断所述断言组件的所有断言信息是否均断言成功;
若是,则判定与所述HTTP请求相对应的WAF规则用例执行成功。
相比现有技术,本发明方法的有益效果为:利用JMeter测试工具,通过添加HTTP请求默认值、线程组、HTTP请求等来模拟用户发送攻击请求,然后通过CVS数据文件的配置将模拟创建的攻击请求进行参数化设置,对服务器上的Web业务进行攻击完成WAF规则自动测试,实现测试用的攻击请求参数可合并发送及可变化设置,并且,可规避测试人员因怕在每次编写测试参数时出错而需花大量时间排查的问题,使得模拟创建的攻击请求参数更接近现网用户,用户流量更加逼真,以使本发明方法较传统WAF规则测试方法具有更佳地测试效率及测试准确性。
较佳地,所述在JMeter测试工具中添加HTTP请求默认值及线程组,且在所述线程组的线程中添加HTTP请求,获取对Web业务进行攻击的攻击请求的步骤包括:
确认HTTP请求的类型;
在JMeter测试工具中添加HTTP请求默认值,并输入所述HTTP请求默认值的相关参数;
在JMeter测试工具中添加线程组,并设置相应的线程属性;
在所述线程组的线程中添加HTTP请求,并配置相应参数;
通过所述HTTP请求默认值、所述线程组及所述HTTP请求模拟发送攻击,获取对Web业务进行攻击的攻击请求。
较佳地,所述在所述线程组中设置断言组件,判断所述断言组件的所有断言信息是否均断言成功的步骤之后,所述方法还包括:
若否,则判定与所述HTTP请求相对应的WAF规则用例执行失败,并上报异常信息。
较佳地,所述与所述HTTP请求相对应的WAF规则用例执行成功的步骤之后,所述方法还包括:
获取WAF规则用例执行成功占比数据,计算得出WAF规则的检出率。
较佳地,在所述线程组中还设置监听器,所述监听器以图表形式直观展现WAF规则用例执行情况的测试结果。
进一步地,本发明的另一个实施例提出一种WAF规则自动测试系统,所述系统包括:
创建模拟模块:用于在JMeter测试工具中添加HTTP请求默认值及线程组,且在所述线程组的线程中添加HTTP请求,获取对Web业务进行攻击的攻击请求;
数据处理模块:用于在JMeter测试工具中设置CVS数据文件,所述攻击请求经所述CVS数据文件进行参数化设置;
判断模块:用于在所述线程组中设置断言组件,判断所述断言组件的所有断言信息是否均断言成功;
第一输出模块:若所述断言组件的所有断言信息均断言成功,则与所述HTTP请求相对应的WAF规则用例执行成功。
相比现有技术,本发明系统的有益效果为:利用JMeter测试工具,通过所述创建模拟模块在所述JMeter测试工具中添加HTTP请求默认值、线程组、HTTP请求等来模拟用户发送攻击请求,然后通过所述数据处理模块的配置将模拟创建的攻击请求进行参数化设置,对服务器上的Web业务进行攻击,并通过所述判断模块判断测试结果,及通过所述第一输出模块输出相应的测试结果,从而完成WAF规则自动测试。本发明系统实现测试用的攻击请求参数可合并发送及可变化设置,并且,可规避测试人员因怕在每次编写测试参数时出错而需花大量时间排查的问题,使得模拟创建的攻击请求参数更接近现网用户,用户流量更加逼真,以使本发明方法较传统WAF规则测试方法具有更佳地测试效率及测试准确性。
较佳地,所述创建模拟模块包括:
确定单元:用于确认HTTP请求的类型;
第一添加单元:用于在JMeter测试工具中添加HTTP请求默认值,并输入所述HTTP请求默认值的相关参数;
第二添加单元:用于在JMeter测试工具中添加线程组,并设置相应的线程属性;
第三添加单元:用于在所述线程组的线程中添加HTTP请求,并配置相应参数。
创建单元:用于通过所述HTTP请求默认值、所述线程组及所述HTTP请求模拟发送攻击,获取对Web业务进行攻击的攻击请求。
较佳地,所述系统还包括:
第二输出模块:若所述断言组件的其一断言信息断言失败,则与所述HTTP请求相对应的WAF规则用例执行失败,并上报异常信息。
进一步地,本发明的另一个实施例提出一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述中任意一项所述的查找方法的步骤。
进一步地,本发明的另一个实施例提出一种终端设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如上述中任意一项所述的查找方法的步骤。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的WAF规则自动测试方法的流程简图;
图2为本发明实施例一提供的WAF规则自动测试方法的流程框图;
图3为图2流程框图中提供的步骤S110的具体流程框图;
图4为本发明实施例二提供的WAF规则自动测试系统的结构框图;
图5为本发明实施例三提供的另一WAF规则自动测试方法的流程框图;
图6为本发明实施例四提供的另一WAF规则自动测试系统的结构框图;
图7为本发明实施例三提供的再一WAF规则自动测试方法的流程框图;
图8为本发明实施例四提供的再一WAF规则自动测试系统的结构框图;
附图标记说明:
10-创建模拟模块、11-确定单元、12-第一添加单元、13-第二添加单元、14-第三添加单元、15-创建单元;
20-数据处理模块;
30-判断模块;
40-第一输出模块;
50-第二输出模块;
60-显示模块;
70-计算模块。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似改进,因此本发明不受下面公开的具体实施的限制。
如图1和图2所示,为本发明的实施例一提出的一种WAF规则自动测试方法,具体技术方案包括以下步骤:
S110:在JMeter测试工具中添加HTTP请求默认值及线程组,且在所述线程组的线程中添加HTTP请求,获取对Web业务进行攻击的攻击请求。
进一步地,如图3所示,所述步骤S110的具体步骤如下:
S111:确认HTTP请求的类型;
其中,HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议,HTTP的底层是TCP/IP,则GET和POST也是TCP链接,给GET加上request body,给POST带上URL参数,技术上是完全行的通的,即能做的事情一样。GET和POST作为HTTP请求的两种基本方法,两者主要区别点在于GET产生一个TCP数据包,POST产生两个TCP数据包;具体地来说,对于GET方式的请求,浏览器会把HTTP header和data一并发送出去,服务器响应200(返回数据);而对于POST,浏览器先发送header,服务器响应100continue,浏览器再发送data,服务器响应200OK(返回数据)。
S112:在JMeter测试工具中添加HTTP请求默认值,并输入所述HTTP请求默认值的相关参数;
其中,所述HTTP请求默认值的相关参数包括但不限于:Web服务器的协议、服务器名称、IP地址、端口号。HTTP请求默认值是作为HTTP请求设置默认的值;假如,创建一个测试计划有很多个HTTP请求且都是发送到相同的server,这时只需添加一个HTTP requestdefaults组件并设置“Server Name or IP”,然后添加多个HTTP请求且不设置“servername or IP”,这些HTTP请求会默认使用HTTP request defaults组件设置的值。
S113:在JMeter测试工具中添加线程组,并设置相应的线程属性;
其中,所述线程属性包括但不限于:请求并发数量、循环次数、线程间启动时间间隔、线程启动时间参数;所述请求并发数量的设置用于模拟用户数,所述循环次数的设置用于控制循环次数,所述线程间启动时间间隔(Ramp-Up period)用于控制线程在预设时间内启动。需要说明的是:当所述循环次数选择forever选项的话,请求会一直继续。
具体地,所述线程组的作用在于可以批量管理线程或线程组对象,有效地对线程或线程组对象进行组织。用户创建的所有线程都属于指定线程组,如果没有显示指定属于哪个线程组,那么该线程就属于默认线程组,即main线程组;默认情况下,子线程和父线程处于同一个线程组;只有在创建线程时才能指定其所在的线程组,线程运行中途不能改变它所属的线程组,也就是说线程一旦指定所在的线程组,就直到该线程结束。
S114:在所述线程组的线程中添加HTTP请求,并配置相应参数;
其中,所述配置相应参数包括但不限于协议类型、IP地址、端口号以及请求类型、请求路径。
具体地,HTTP使用内容类型是指Web服务器向Web浏览器返回的文件都有与之相关的类型;所有类型在MIME Internet邮件协议上模型化,即Web服务器告诉Web浏览器该文件所具有的种类,是HTML文档、GIF格式图像、声音文件还是独立的应用程序。大多数Web浏览器都拥有一系列的可配置的辅助应用程序,告诉浏览器应该如何处理Web服务器发送过来的各种内容类型。
S115:通过所述HTTP请求默认值、所述线程组及所述HTTP请求模拟发送攻击,获取对Web业务进行攻击的攻击请求。
其中,利用JMeter测试工具,通过在JMeter测试工具的测试计划中添加HTTP请求默认值、线程组、HTTP请求等,其目的在于模拟用户来发送攻击请求,以使获取的发送攻击请求对服务器上的Web业务进行攻击,实现WAF规则自动测试所需的攻击请求。
S120:在JMeter测试工具中设置CVS数据文件,所述攻击请求经所述CVS数据文件进行参数化设置。
其中,通过设置所述CVS数据文件可编写beanShell脚本或者导入辅助Jar包,其目的在于完成JMeter基本功能中无法实现的功能;诸如调用自己的工具类实现一些加解密功能;
具体地,CSV(Comma-Separated Values)逗号分隔值,是用逗号分隔数据项(也称为字段)的数据交换格式,CSV主要应用于电子表格和数据库之间的数据交换。在利用JMeter测试工具进行接口测试或者性能测试的时候,我们需要处理一些复杂的请求,此时就需要利用beanshell脚本;beanShell脚本是一种完全符合Java语法规范的脚本语言,且自带的一些内置变量和一些方法,JMeter测试工具在其BeanShell脚本中内置了变量,用户是通过这些变量与JMeter进行交互。Jar(Java ARchive)是将一系列文件合并到单个压缩文件里,就象Zip那样;Jar包是指将写好的一些类进行打包,将这些Jar包引入项目中,然后就可以直接使用这些Jar包中的类和属性以及方法;在Jar文件之前,Web浏览器必须重复多次请求Web服务器,以便下载完构成一个程序片的所有文件;除此以外,每个文件都是未经压缩的。但在将所有这些文件合并到一个Jar包里以后,只需向远程服务器发出一次请求即可;同时因采用压缩技术,所以可在更短的时间里获得全部数据。
S130:在所述线程组中设置断言组件,判断所述断言组件的所有断言信息是否均断言成功。
其中,断言相当于检查点,它是用来判断系统返回的响应结果是否正确,以此判断测试是否通过,在使用JMeter测试工具进行性能测试或者接口自动化测试工作中,经常会用到的断言功能;使用断言的目的在request的返回层面增加一层判断机制,因为request成功并不代表结果一定正确。一个Sampler可以添加多个断言,根据你的检查需求来添加相应的断言,当Sampler下所有的断言都通过了,那么才算request成功。
S140:若是,则判定与所述HTTP请求相对应的WAF规则用例执行成功。
其中,在选择的Sampler下添加对应的断言,因为不同类型的断言检查的内容不同;配置好响应的检查内容,根据断言情况而定,有的断言控制面板不需要添加任何内容,诸如:XML Assertion。添加一个断言结果的监听器,通过“断言结果”可以看到是否通过断言;对于一次请求,如果通过的话,断言结果中只会打印一行请求的名称。
本实施例的方法利用JMeter测试工具,通过添加HTTP请求默认值、线程组、HTTP请求等来模拟用户发送攻击请求,然后通过CVS数据文件的配置将模拟创建的攻击请求进行参数化设置,对服务器上的Web业务进行攻击完成WAF规则自动测试,实现测试用的攻击请求参数可合并发送及可变化设置,并且,可规避测试人员因怕在每次编写测试参数时出错而需花大量时间排查的问题,使得模拟创建的攻击请求参数更接近现网用户,用户流量更加逼真,以使本发明方法较传统WAF规则测试方法具有更佳地测试效率及测试准确性。
如图4所示,本发明的实施例二中提供实施例一所述方法相对应的系统的结构框图,所述系统包括:
创建模拟模块10:用于在JMeter测试工具中添加HTTP请求默认值及线程组,且在所述线程组的线程中添加HTTP请求,获取对Web业务进行攻击的攻击请求;
数据处理模块20:用于在JMeter测试工具中设置CVS数据文件,所述攻击请求经所述CVS数据文件进行参数化设置;
判断模块30:用于在所述线程组中设置断言组件,判断所述断言组件的所有断言信息是否均断言成功;
第一输出模块40:若所述断言组件的所有断言信息均断言成功,则与所述HTTP请求相对应的WAF规则用例执行成功。
进一步地,所述创建模拟模块10包括:
确定单元11:用于确认HTTP请求的类型;
第一添加单元12:用于在JMeter测试工具中添加HTTP请求默认值,并输入所述HTTP请求默认值的相关参数;
第二添加单元13:用于在JMeter测试工具中添加线程组,并设置相应的线程属性;
第三添加单元14:用于在所述线程组的线程中添加HTTP请求,并配置相应参数。
创建单元15:用于通过所述HTTP请求默认值、所述线程组及所述HTTP请求模拟发送攻击,获取对Web业务进行攻击的攻击请求。
本实施例的系统利用JMeter测试工具,通过所述创建模拟模块10添加HTTP请求默认值、线程组、HTTP请求等来模拟用户发送攻击请求,然后通过所述数据处理模块20的CVS数据文件的配置将模拟创建的攻击请求进行参数化设置,对服务器上的Web业务进行攻击完成WAF规则自动测试,实现测试用的攻击请求参数可合并发送及可变化设置,并且,可规避测试人员因怕在每次编写测试参数时出错而需花大量时间排查的问题,使得模拟创建的攻击请求参数更接近现网用户,用户流量更加逼真,以使本发明方法较传统WAF规则测试方法具有更佳地测试效率及测试准确性。
如图1和图5所示,为本发明的第三实施例提出的一种WAF规则自动测试方法,具体技术方案包括以下步骤:
S210:在JMeter测试工具中添加HTTP请求默认值及线程组,且在所述线程组的线程中添加HTTP请求,获取对Web业务进行攻击的攻击请求;需要说明的是,该步骤的具体步骤同实施例一的S110,故在此不赘述。
S220:在JMeter测试工具中设置CVS数据文件,所述攻击请求经所述CVS数据文件进行参数化设置。
S230:在所述线程组中设置断言组件,判断所述断言组件的所有断言信息是否均断言成功。
S240:若否,则与所述HTTP请求相对应的WAF规则用例执行失败。
如图6所示,本发明的实施例四中提供实施例三所述方法相对应的系统的结构框图,所述系统包括:
创建模拟模块10:用于在JMeter测试工具中添加HTTP请求默认值及线程组,且在所述线程组的线程中添加HTTP请求,获取对Web业务进行攻击的攻击请求;
数据处理模块20:用于在JMeter测试工具中设置CVS数据文件,所述攻击请求经所述CVS数据文件进行参数化设置;
判断模块30:用于在所述线程组中设置断言组件,判断所述断言组件的所有断言信息是否均断言成功;
第二输出模块50:若所述断言组件的其一断言信息断言失败,则与所述HTTP请求相对应的WAF规则用例执行失败,并上报异常信息。
进一步地,所述创建模拟模块10包括:
确定单元11:用于确认HTTP请求的类型;
第一添加单元12:用于在JMeter测试工具中添加HTTP请求默认值,并输入所述HTTP请求默认值的相关参数;
第二添加单元13:用于在JMeter测试工具中添加线程组,并设置相应的线程属性;
第三添加单元14:用于在所述线程组的线程中添加HTTP请求,并配置相应参数。
创建单元15:用于通过所述HTTP请求默认值、所述线程组及所述HTTP请求模拟发送攻击,获取对Web业务进行攻击的攻击请求。
如图1和图7所示,为本发明的第五实施例提出的一种WAF规则自动测试方法,具体技术方案包括以下步骤:
S310:在JMeter测试工具中添加HTTP请求默认值及线程组,且在所述线程组的线程中添加HTTP请求,获取对Web业务进行攻击的攻击请求。需要说明的是,该步骤的具体步骤同实施例一的S110,故在此不赘述。
S320:在JMeter测试工具中设置CVS数据文件,所述攻击请求经所述CVS数据文件进行参数化设置。
S330:在所述线程组中设置断言组件,判断所述断言组件的所有断言信息是否均断言成功。
S340:若是,则判定与所述HTTP请求相对应的WAF规则用例执行成功。
S350:获取WAF规则用例执行成功占比数据,计算得出WAF规则的检出率。
本实施例的方法利用JMeter测试工具,通过添加HTTP请求默认值、线程组、HTTP请求等来模拟用户发送攻击请求对服务器上的Web业务进行攻击,然后通过配置CSV数据文件进行攻击请求参数化设置,使用户流量更加逼真,最后再添加查看结果树和断言组件来判断服务器或WAF响应的结果是否符合预期结果,从而自动化测试WAF的检出率。
如图8所示,本发明的实施例六中提供实施例五所述方法相对应的系统的结构框图,所述系统包括:
创建模拟模块10:用于在JMeter测试工具中添加HTTP请求默认值及线程组,且在所述线程组的线程中添加HTTP请求,获取对Web业务进行攻击的攻击请求;
数据处理模块20:用于在JMeter测试工具中设置CVS数据文件,所述攻击请求经所述CVS数据文件进行参数化设置;
判断模块30:用于在所述线程组中设置断言组件,判断所述断言组件的所有断言信息是否均断言成功;
第一输出模块40:若所述断言组件的所有断言信息均断言成功,则与所述HTTP请求相对应的WAF规则用例执行成功。
显示模块60,具体为在所述线程组中设置的监听器,所述监听器用于以图表形式直观展现WAF规则用例执行情况的测试结果;
计算模块70:用于获取WAF规则用例执行成功占比数据,计算得出WAF规则的检出率。
进一步地,所述创建模拟模块10包括:
确定单元11:用于确认HTTP请求的类型;
第一添加单元12:用于在JMeter测试工具中添加HTTP请求默认值,并输入所述HTTP请求默认值的相关参数;
第二添加单元13:用于在JMeter测试工具中添加线程组,并设置相应的线程属性;
第三添加单元14:用于在所述线程组的线程中添加HTTP请求,并配置相应参数
创建单元15:用于通过所述HTTP请求默认值、所述线程组及所述HTTP请求模拟发送攻击,获取对Web业务进行攻击的攻击请求。
本实施例的系统利用JMeter测试工具,通过所述创建模拟模块添加HTTP请求默认值、线程组、HTTP请求等来模拟用户发送攻击请求对服务器上的Web业务进行攻击,然后通过所述数据处理模块配置CSV数据文件进行攻击请求参数化设置,使用户流量更加逼真,最后通过所述判断模块及所述第一输出模块查看结果树和断言组件来判断服务器或WAF响应的结果是否符合预期结果,从而自动化测试WAF的检出率。
本发明实施例还提供了一种存储介质,其上存储有应用程序,该程序被处理器执行时实现上述实施例一、实施例二和实施例三中方法的步骤。
本发明实施例还提供了一种终端设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的应用程序,所述处理器执行所述程序时实现上述实施例一、实施例二和实施例三中方法的步骤。
具体地,上述处理器可以包括中央处理器(CPU),或者特定集成电路(ApplicationSpecific Integrated Circuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器可包括硬盘驱动器(Hard Disk Drive,简称为HDD)、软盘驱动器、固态驱动器(SolidState Drive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(Universal SerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器可在数据处理装置的内部或外部。在特定实施例中,存储器是非易失性(Non-Volatile)存储器。在特定实施例中,存储器包括只读存储器(Read-Only Memory,简称为ROM)和随机存取存储器(Random AccessMemory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(Programmable Read-Only Memory,简称为PROM)、可擦除PROM(Erasable ProgrammableRead-Only Memory,简称为EPROM)、电可擦除PROM(Electrically Erasable ProgrammableRead-Only Memory,简称为EEPROM)、电可改写ROM(Electrically Alterable Read-OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(Static Random-Access Memory,简称为SRAM)或动态随机存取存储器(Dynamic Random Access Memory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器(Fast Page Mode Dynamic Random Access Memory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(Extended Date Out Dynamic RandomAccess Memory,简称为EDODRAM)、同步动态随机存取内存(Synchronous Dynamic Random-Access Memory,简称SDRAM)等。
存储器可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器所执行的可能的计算机程序指令。
处理器通过读取并执行存储器中存储的计算机程序指令,以实现上述实施例中的任意一种WAF规则自动测试方法。
在其中一些实施例中WAF规则自动测试系统还可包括通信接口和总线。其中,处理器、存储器、通信接口通过总线连接并完成相互间的通信。
通信接口用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。通信接口还可以实现与其他部件例如:外接设备、图像/数据采集设备、数据库、外部存储以及图像/数据处理工作站等之间进行数据通信。
总线包括硬件、软件或两者,将WAF规则自动测试系统的部件彼此耦接在一起。总线包括但不限于以下至少之一:数据总线(Data Bus)、地址总线(Address Bus)、控制总线(Control Bus)、扩展总线(Expansion Bus)、局部总线(Local Bus)。举例来说而非限制,总线可包括图形加速接口(Accelerated Graphics Port,简称为AGP)或其他图形总线、增强工业标准架构(Extended Industry Standard Architecture,简称为EISA)总线、前端总线(Front Side Bus,简称为FSB)、超传输(Hyper Transport,简称为HT)互连、工业标准架构(Industry Standard Architecture,简称为ISA)总线、无线带宽(InfiniBand)互连、低引脚数(Low Pin Count,简称为LPC)总线、存储器总线、微信道架构(Micro ChannelArchitecture,简称为MCA)总线、外围组件互连(Peripheral Component Interconnect,简称为PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(Serial AdvancedTechnology Attachment,简称为SATA)总线、视频电子标准协会局部(Video ElectronicsStandards Association Local Bus,简称为VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种WAF规则自动测试方法,其特征在于,所述方法包括:
在JMeter测试工具中添加HTTP请求默认值及线程组,且在所述线程组的线程中添加HTTP请求,获取对Web业务进行攻击的攻击请求;
在JMeter测试工具中设置CVS数据文件,所述攻击请求经所述CVS数据文件进行参数化设置;
在所述线程组中设置断言组件,判断所述断言组件的所有断言信息是否均断言成功;
若是,则判定与所述HTTP请求相对应的WAF规则用例执行成功。
2.根据权利要求1所述的WAF规则自动测试方法,其特征在于,所述在JMeter测试工具中添加HTTP请求默认值及线程组,且在所述线程组的线程中添加HTTP请求,获取对Web业务进行攻击的攻击请求的步骤包括:
确认HTTP请求的类型;
在JMeter测试工具中添加HTTP请求默认值,并输入所述HTTP请求默认值的相关参数;
在JMeter测试工具中添加线程组,并设置相应的线程属性;
在所述线程组的线程中添加HTTP请求,并配置相应参数;
通过所述HTTP请求默认值、所述线程组及所述HTTP请求模拟发送攻击,获取对Web业务进行攻击的攻击请求。
3.根据权利要求1所述的WAF规则自动测试方法,其特征在于,所述在所述线程组中设置断言组件,判断所述断言组件的所有断言信息是否均断言成功的步骤之后,所述方法还包括:
若否,则判定与所述HTTP请求相对应的WAF规则用例执行失败,并上报异常信息。
4.根据权利要求1所述的WAF规则自动测试方法,其特征在于,所述与所述HTTP请求相对应的WAF规则用例执行成功的步骤之后,所述方法还包括:
获取WAF规则用例执行成功占比数据,计算得出WAF规则的检出率。
5.根据权利要求1所述的WAF规则自动测试方法,其特征在于,在所述线程组中还设置监听器,所述监听器以图表形式直观展现WAF规则用例执行情况的测试结果。
6.一种WAF规则自动测试系统,其特征在于,所述系统包括:
创建模拟模块:用于在JMeter测试工具中添加HTTP请求默认值及线程组,且在所述线程组的线程中添加HTTP请求,获取对Web业务进行攻击的攻击请求;
数据处理模块:用于在JMeter测试工具中设置CVS数据文件,所述攻击请求经所述CVS数据文件进行参数化设置;
判断模块:用于在所述线程组中设置断言组件,判断所述断言组件的所有断言信息是否均断言成功;
第一输出模块:若所述断言组件的所有断言信息均断言成功,则与所述HTTP请求相对应的WAF规则用例执行成功。
7.根据权利要求6所述的WAF规则自动测试系统,其特征在于,所述创建模拟模块包括:
确定单元:用于确认HTTP请求的类型;
第一添加单元:用于在JMeter测试工具中添加HTTP请求默认值,并输入所述HTTP请求默认值的相关参数;
第二添加单元:用于在JMeter测试工具中添加线程组,并设置相应的线程属性;
第三添加单元:用于在所述线程组的线程中添加HTTP请求,并配置相应参数;
创建单元:用于通过所述HTTP请求默认值、所述线程组及所述HTTP请求模拟发送攻击,获取对Web业务进行攻击的攻击请求。
8.根据权利要求6所述的WAF规则自动测试系统,其特征在于,所述系统还包括:
第二输出模块:若所述断言组件的其一断言信息断言失败,则与所述HTTP请求相对应的WAF规则用例执行失败,并上报异常信息。
9.一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至5中任一项所述的WAF规则自动测试方法的步骤。
10.一种终端设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5中任一项所述的WAF规则自动测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110935020.8A CN113656302A (zh) | 2021-08-16 | 2021-08-16 | Waf规则自动测试方法、系统、存储介质及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110935020.8A CN113656302A (zh) | 2021-08-16 | 2021-08-16 | Waf规则自动测试方法、系统、存储介质及终端设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113656302A true CN113656302A (zh) | 2021-11-16 |
Family
ID=78480353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110935020.8A Withdrawn CN113656302A (zh) | 2021-08-16 | 2021-08-16 | Waf规则自动测试方法、系统、存储介质及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113656302A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114944998A (zh) * | 2022-03-14 | 2022-08-26 | 华南理工大学 | 基于模拟器的物联网系统测试方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107426202A (zh) * | 2017-07-13 | 2017-12-01 | 北京知道未来信息技术有限公司 | 一种自动化测试waf拦截规则的方法 |
CN109597761A (zh) * | 2018-12-03 | 2019-04-09 | 四川长虹电器股份有限公司 | 一种基于Jmeter的接口自动化测试方法 |
CN111625464A (zh) * | 2020-05-28 | 2020-09-04 | 杭州鸿雁电器有限公司 | 接口的测试方法、装置、存储介质和处理器 |
CN112817857A (zh) * | 2021-02-05 | 2021-05-18 | 深圳市世强元件网络有限公司 | 基于JMeter和JenKins的自动监控网站异常方法及计算机设备 |
-
2021
- 2021-08-16 CN CN202110935020.8A patent/CN113656302A/zh not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107426202A (zh) * | 2017-07-13 | 2017-12-01 | 北京知道未来信息技术有限公司 | 一种自动化测试waf拦截规则的方法 |
CN109597761A (zh) * | 2018-12-03 | 2019-04-09 | 四川长虹电器股份有限公司 | 一种基于Jmeter的接口自动化测试方法 |
CN111625464A (zh) * | 2020-05-28 | 2020-09-04 | 杭州鸿雁电器有限公司 | 接口的测试方法、装置、存储介质和处理器 |
CN112817857A (zh) * | 2021-02-05 | 2021-05-18 | 深圳市世强元件网络有限公司 | 基于JMeter和JenKins的自动监控网站异常方法及计算机设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114944998A (zh) * | 2022-03-14 | 2022-08-26 | 华南理工大学 | 基于模拟器的物联网系统测试方法及装置 |
CN114944998B (zh) * | 2022-03-14 | 2023-06-20 | 华南理工大学 | 基于模拟器的物联网系统测试方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110532168B (zh) | 全链路接口压测方法、装置、计算机设备及存储介质 | |
US20090204848A1 (en) | Automatic grammar based fault detection and isolation | |
CN109582556B (zh) | 应用程序在移动终端运行情况的测试方法、装置和系统 | |
CN111813701B (zh) | 基于http的接口测试方法、装置、计算机设备及存储介质 | |
US9846781B2 (en) | Unused parameters of application under test | |
CN106484611B (zh) | 基于自动化协议适配的模糊测试方法和装置 | |
CN106330601A (zh) | 测试用例生成方法及装置 | |
CN110474900B (zh) | 一种游戏协议测试方法及装置 | |
CN108763071A (zh) | 一种网页测试方法及终端设备 | |
CN108427639B (zh) | 自动化测试方法、应用服务器及计算机可读存储介质 | |
CN110795305A (zh) | 用于处理和管理web流量数据的系统、装置和方法 | |
CN112667501A (zh) | 基于自动化挡板的链路测试方法、装置及相关设备 | |
US10310962B2 (en) | Infrastructure rule generation | |
CN114491560A (zh) | 一种漏洞检测方法、装置、存储介质及电子设备 | |
CN112653709A (zh) | 漏洞检测方法、装置、电子设备及可读存储介质 | |
CN113656302A (zh) | Waf规则自动测试方法、系统、存储介质及终端设备 | |
CN113220584B (zh) | 页面测试方法、装置、计算机设备和可读存储介质 | |
CN115271736A (zh) | 验证事务一致性的方法、装置、设备、存储介质及产品 | |
CN105117340A (zh) | 用于iOS浏览器应用质量评估的URL检测方法和装置 | |
CN110874475A (zh) | 漏洞挖掘方法、漏洞挖掘平台及计算机可读存储介质 | |
CN112363939A (zh) | 快速生成模糊测试网络协议模板的方法及系统、设备 | |
Noskov | Smart City Webgis Applications: Proof of Work Concept For High-Level Quality-Of-Service Assurance | |
CN116306413A (zh) | 一种fpga仿真验证方法、装置、电子设备及存储介质 | |
KR20210076455A (ko) | Xss 공격 검증 자동화 방법 및 그 장치 | |
CN112905445B (zh) | 一种基于日志的测试方法、装置及计算机系统 |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20211116 |