- 浏览: 472542 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
jyjava:
呵呵,不错,跟把结果放到哈市map中一样,在查询数据库之前,先 ...
if (log.isDebugEnabled()) {}使用场景初析 -
eileennaly:
你好 我最近在研究S2dao(工作需要)但是因为菜鸟一枚(刚刚 ...
S2Dao的执行 -
nswish:
谢谢,受教了!
单例模式中的饿汉式和懒汉式 -
shangweiqiang24:
正要用到,捡到宝啦! 谢谢啊。
Seasar和S2Dao简介 -
hugh1st:
模糊测试主要适合哪些软件/项目的测试呢?看《测试之美》的时候了 ...
模糊测试(Fuzzing Test)个人小结
链接地址:http://www.fuzzware.net/tutorial-4-fuzzing-web-services
Tutorial 4 - Fuzzing Web Services
第4步:模糊测试WebService
Interface fuzzing, and specifically for this tutorial, Web Service fuzzing, differs from file, network or application fuzzing, in that Web Service fuzzing does not require a template or example of a Web Service method being called in order to generate test cases. Instead Fuzzware will try to automatically generate the parameters of the Web Service methods, however you can influence this generation. Another difference between Web Service fuzzing and the other types is that Fuzzware creates XSD files that follow a specific format, however rather than force people to learn that format, the majority of settings for Web Service fuzzing can be made through the UI. This format will be explained for completeness sake but this will only be relevant for those doing advanced fuzzing.
模糊接口,特别是本教程,Web服务的模糊测试,不同于文件、网络或应用程序的模糊测试,在这个Web服务模糊测试中,不需要Web Service方法的模板或例子,这种方法被用来生成测试用例。相反,Fuzzware将尝试自动生成Web Wervice方法的参数,但是你也可以影响这一发生。 Web服务和其他类型之间的另一个不同点是,Fuzzware创建XSD文件是遵循一种特定的格式,但不是强制人们去学习那种格式,为Web Service模糊测试设置的主要过程都可以通过用户界面来进行。这种格式将被解释为全面起见,但这只和那些高级模糊测试有关。
Fuzzware requires a WSDL file describing the services and methods exposed by the Web Service. Typically there is only one WSDL or we would fuzz only one at a time, but Fuzzware does allow you to specify more than one and internally it combines them all into one large WSDL. If the WSDL file(s) does not compile correctly an error message will be presented indicating the problem. Many Web Services have services that work with more than one protocol, so the Web Service protocol must also be chosen.
Fuzzware需要一个WSDL文件来描述由这个Web Service公开的服务和方法。通常只有一个WSDL或者我们在一个时间只对一个进行模糊测试,但Fuzzware确实允许您指定一个以上的模糊测试和将它们结合到一个大的WSDL中去。假如WSDL文件(S)不能正确地编译错误信息,那将提交问题声明。许多Web service提供的众多服务都是和一个以上的协议一起工作的,因此Web服务协议也必须被选择。
If the WSDL(s) compile then you will be able to add to the list of Initial Methods, trying to do so brings up a list of methods to choose from. The ability to specify an initial method is important as some Web Services require their methods to be called in a certain order e.g. login, or load methods. Any methods that aren't specifically listed in the initial methods will be called in a random order for a given testcase. It is important to point out that Fuzzware will call all the methods in the WSDL for every testcase.
如果WSDL编译,那么你就可以添加到初始化方法的列表中去,尝试这样做可以带来一个供选择的方法列表。能够指定一个初始方法很重要,因为有些网络服务要求他们的方法以一个特定的顺序被调用,例如登录,或加载方法。那些没有特别列在初始化方法中的方法,将被给定的测试用例进行随机调用。需要重点指出的是,为了每个测试用例,Fuzzware将调用WSDL中的所有方法。
Try adding and removing Service1.wsdl and Service2.wsdl to see how the list of available Initial Methods changes depending on the WSDLs specified. Also note that the Initial Methods are prefixed by a service name so you can distinguish which methods belong to which service.
尝试添加和删除Service1.wsdl和Service2.wsdl,来看看根据指定的WSDL,现有可用的初始化方法的清单是如何改变的。还要注意的是初始化方法是以service名称为前缀的,以便您可以区分哪些方法是属于哪个服务。
The last configuration section is the default method parameter values. Since Fuzzware does not use a template or example of the Web Service method calls, the parameters of the methods must be given. Rather than specify each method parameter individually, Fuzzware populates method parameters by their type, hence at the bottom of this section you can specify for example the default value of all parameters of type String. The last default parameter type is Variant, however this is not relevant for WSDL fuzzing.
最后配置部分是默认方法参数值。由于Fuzzware不使用Web服务方法调用的模板或例子,方法的参数必须给定。不是每个方法的参数都单独指定,Fuzzware使用参数类型来填充方法的参数,因此在这一部分的最后,举例来说,你可以使用String类型来指定所有参数的默认值。最后默认参数类型是Variant类型,不过这种类型和WSDL模糊测试不相关。
Being able to choose the default value for all parameters is fine, but often we want to give specific parameters a certain value, or groups of parameters a certain value. Below we can see how this can be achieved by adding specific rules for Fuzzware to follow when it assigns parameters their values.
能够为所有参数选择默认值的是好的,但往往我们希望给指定的参数或者参数组以某个特定的值。下面我们可以看到这可以通过增加遵循Fuzzware的具体规则,给参数指定值。
There are 4 rules to choose from:
1. Named method/parameter: From the dropdown lists choose a specific method (only those with input parameters are listed) and then choose a specific parameter and assign it a value. You can tell the type of the parameter because initially it will get the default value for that parameter type.
2. Any parameter name containing: Any parameter on any method that contains the specified string will be assigned the specified value. E.g. any parameter containing 'date' could be assigned a certain date.
3. Any parameter name starting with: Any parameter on any method that starts with the specified string will be assigned the specified value.
4. Any parameter name ending with: Any parameter on any method that ends with the specified string will be assigned the specified value.
有4个可供选择的规则:
1。命名方法/参数:从下拉列表中选择一个特定的方法(只有那些带有输入参数的才会被列出),然后选择一个特定的参数,并给它指定一个值。你可以告知参数的类型,因为最初它将获得该参数类型的默认值。
2。任何参数名称包括:对任何方法,其中包含指定字符串的任何参数都将被分配给指定值。例如:任何包含'date'的参数会被赋予一个日期。3。任何参数名称的开始:任何方法上的任何参数,以指定字符串形式开始的,将被赋予指定值。
4。任何参数名称的结束:任何方法上的任何参数,以指定字符串形式结束的,将被赋予指定值。
Note also that these rules are applied in the order given (which can be changed), so they should be ordered least specific (e.g. any parameter containing 'a') to most specific (e.g. a specific method and parameter).
另请注意,这些规则是按给定的顺序使用的(这个顺序可以被改变),所以他们必须被命令具体的(例如含有'a'的任何参数),成最具体的(例如,一个具体的方法和参数)。
With the input source configured, now we can configure the corresponding output destination, 'Send testcases to Web Services'
伴随着输入源配置,现在我们可以配置相应的输出目的地,'向Web Service发送测试用例'
Whilst Fuzzware does not require an example of WSDL method calls, nevertheless some web services use advanced or custom web service features that Fuzzware knows nothing about. Hence the first output destination configuration option tells Fuzzware what SOAP template file to use (the template is not an example of the Web Service we are fuzzing but instead a skeleton SOAP request that we will populate). There is a default SOAP template file that ships with Fuzzware (located in the Resources directory where Fuzzware is installed), that contains a basic template for a SOAP method request, however this can be copied and changed, all Fuzzware relies on is being able to append to the Body element of the SOAP request. Note also, that if a pre-output handler changes the template, Fuzzware will notice this and reload it from the file (it checks the modified time on the file).
虽然Fuzzware不需要WSDL方法调用的例子,但一些web service采用高级的或定制的Web service特征,而Fuzzware对此一无所知。因此,在第一个输出目的地配置选项,告诉Fuzzware使用什么SOAP模板文件(该模板不是我们进行Web服务模糊测试的例子,而是我们即将填充的一个骨架SOAP请求)。这边有一个默认的SOAP模板文件是与Fuzzware一起的(位于Fuzzware的安装位置的资源目录中),包含一个SOAP方法请求的基本模板,但是也可以复制和修改,所有Fuzzware依赖是能够追加到请求的SOAP Body元素。还要注意,如果预输出处理器改变了模板,Fuzzware会注意到这一点,并且从文件重新加载它(它会检查文件上的修改时间)。
The next configuration option is the reuse response values. Some web service methods will respond with a value that they expect to be included in subsequent requests; to accommodate for this you can specify the name of the response node to look for and Fuzzware will record its value, and if a subsequent request has a node with the same name, Fuzzware will replace its value. Fuzzware makes sure not to replace the value if the node that is currently the target of fuzzing is the node specified.
下一个配置选项是重复使用的响应值。一些web服务的方法将得到响应,这些响应带着他们期望能够被包含在随后的请求中的值,为了适应这个,你可以指定寻找的响应节点的名称,并且Fuzzware会记录它的价值,如果随后请求节点具有相同的名称,Fuzzware将覆盖它的值。 Fuzzware可以确保不替换值,如果该节点是指定的当前模糊测试目标。
The final options is the output configuration were you can choose the output directory and file extensions of any saved test cases. So how does Fuzzware decide which test cases to save? Basically Fuzzware records the response to every method request, and if that response is unique then it will record the test case. This leads to a slight problem for Web Service fuzzing because there are usually multiple responses in the one test case, but Fuzzware overcomes this by recording the test case if any of the responses are unique and noting the method which caused the unique response in the output statistics (which is why the same state is listed more than once, but each state should have a unique method appended in brackets after it).
最后一个选项是输出配置,您可以在选择输出目录和文件扩展来存储任何测试用例。那么Fuzzware是怎样决定哪些测试用例被保存?基本上Fuzzware会记录每一个方法请求的响应,如果这种响应唯一的,然后就会记录这个测试案例。对Web Service模糊测试而言这会导致一个小问题,因为通常在一个测试案例中会有多种响应值,但Fuzzware克服了这个问题,如果任何的答复是唯一的,那就会记录这个测试用例,并会注意到那些在输出统计中导致唯一响应的方法(这就是为什么同样的状态列出了超过一次,但每个状态应该有一个唯一的方法出现在后面的括号中)。
Advanced Configuration
Whilst the UI allows for some customisation, it does lack some convenience:
1. You cannot limit the methods that are called, all the methods of the WSDL will be called per test case.
2. The UI is not convenient if we need to specify a large number of default values for method parameters.
高级配置
虽然用户界面允许一些定制,但它缺少一些便利:
1。你不能限制被调用的方法,在每个测试用例中,WSDL的所有方法将被调用。
2。假如我们需要为方法的参数指定一大堆默认值时,这种用户界面并不方便。
To overcome these limitations it is best to run your WSDL project in Test Mode and look at the output files in the project directory. Fuzzware creates XSD files containing the definitions of all the types in the WSDL and of the methods of the WSDL. Fuzzware also creates an XML file containing the methods it will call and the order in which it will call them. The key point about the files that Fuzzware generates is that if you run Fuzzware again, it will not overwrite these files if they are already exist, but will load these files and reuse them, hence they can be manually editted.
为了克服这些限制,最好是将你的WSDL项目运行在测试模式,并接受将输出文件放在项目目录中。 Fuzzware创建XSD文件,这些文件中包含了WSDL中所有类型的定义和WSDL的方法。 Fuzzware还创建了一个XML文件,其中包含了它将调用的方法和它将以何次序调用它们。Fuzzware产生这些文件的关键一点是,如果你再次运行Fuzzware,如果这些文件已经存在,它不会覆盖它们,而是会加载和重用他们,因此它们可以被手动编辑。
So both the above limitations can be solved by editing the XML directly; you can remove methods that you do not want to call and you can directly specify method parameter values in the XML. The format of the XML is very straight-forward with a root node that contains the SOAP Body method XML that will populate the SOAP template (specified in the output destination configuration), the only difference is the method names are pre-pended with the service name (so multiple services with methods of the same name can be distinguished). Note also that the XSD files can also be altered if Fuzzware has any issues with the types being used.
因此上述限制都可以通过直接编辑XML来解决;在这个XML文件中,你可以删除那些你不想调用的方法,并且你可以直接指定方法的参数值。XML格式非常直接了当,就是包含了SOAP主体方法XML的根节点,这个XML将填充进SOAP模板(在输出目的地的配置中来指定),唯一的区别是方法名称是以service名称为前缀的(所以多个带有相同方法名称的service也能够被区分开)。还要注意的是XSD文件也可以改变,如果Fuzzware在正在使用类型上有任何问题。
发表评论
-
Scalability Test运行前的Check List
2010-04-02 13:56 1711运行Scalability Test之前,需要进行一系列检查: ... -
Tier2 上1K Node的准备
2010-03-23 16:27 1131今天我帮同事准备测试环境,在lab里呆了大半天,搞定了. ... -
Connection timed out和添加tier-2 server报错
2010-02-10 15:43 4148问题1: 对API部分进行Junit测试,刚开始报错: ... -
Alpha测试简介
2010-01-27 13:39 1242Alpha测试是由一个用户在开发环境下进行的测试,也可以是公司 ... -
Eclipse代码update和SVN设置
2010-01-21 11:23 6049问题:本地Eclipse中代码的update功能受到影响,无法 ... -
Datacenter Manager Architecture Units
2010-01-20 10:20 1332DCM架构说明(各单元) 1.DCM API De ... -
getQueryAggregationPeriodList方法
2010-01-19 15:34 1115这个方法的返回值是AggregationPeriod数组类型, ... -
getQueryData方法
2010-01-19 11:08 4461getQueryData方法,有6个参数,分别是: 实体id ... -
QueryType类型
2010-01-18 11:35 3857主要是对功率和温度的查询 A query can be ... -
getMetricData方法
2010-01-15 15:53 1858getMetricData: Calculates metr ... -
Assert.fail()和Assert.assertFalse()
2010-01-13 10:37 16439Query模块Test Case,有一系列的异常测试,选取其中 ... -
在Tier-2Server上添加node或者hierarchy
2009-12-29 11:10 1224在Tier-2Server上添加node或者hierar ... -
BackTrack使用尝试记(WW49)
2009-12-07 10:34 3331问题1:进入BackTrack3的 ... -
BackTrack 3和WSFuzzer调查第1天(20091130)
2009-12-01 11:16 2820我先从网上找到的一些 ... -
模糊测试(Fuzzing Test)个人小结
2009-11-30 14:43 63241.概念:在软件测试过 ... -
WW48(20091123-20091127)调查情况
2009-11-30 10:35 1410前两天,主要是调查IBM Rational AppScan ... -
Fuzzing test VS 安全性测试
2009-11-23 15:54 2175Fuzzing test和security 测试(比如安全漏洞 ... -
WebInspect评估版试用第2天和第3天
2009-11-18 18:55 2610这两天,主要是电话、邮件联系HP软件售前支持,以期解决WebI ... -
WebInspect快速启动(中文翻译版)
2009-11-18 11:16 6917Start WebInspect 说 ... -
WebInspect评估版试用第1天
2009-11-16 17:43 3467今天上午,我下载了WebInspect7.7评估版(可以免费试 ...
相关推荐
Java Web Services and XML
WSDL(Web Services Description Language)是一种 XML 格式的文档,用于描述 Web 服务的接口和绑定。WSDL 包含三个主要部分: - **接口(Interface)**:定义了服务的抽象操作和消息。 - **绑定(Binding)**:指定...
4. **边界条件**:设置传送带的运动速度,以及颗粒加载和卸载的区域,这些边界条件决定了系统的动态行为。 5. **模拟参数**:包括时间步长、模拟时间、粒子分辨率等,这些参数影响模拟的精度和计算效率。 6. **...
Tutorial4 - Axis Control Tutorial5 - Legend design Tutorial6 - Working with Series Tutorial7 - Working with Functions Tutorial8 - ADO.NET Database Access Tutorial9 - ASP.NET Applications ...
another-tutorial-about-java-web, 关于 java web的另一个教程 浅入浅出Java站点 JSP & Servlet00-00、序00-01、相关软件的安装00-02、理解HTTP00-03、从JSP开始00-04、理解Servlet00-05、过滤器与监听器00-06、使用...
4. **向量乘法与除法(元素级)**(Matlab Tutorial - 30 - Multiplying and Dividing Vectors Element-by-Element.mp4):这里介绍了向量的元素级乘法(点乘和叉乘)以及除法操作,这些操作在处理向量关系和线性...
Java SE 7u45 文档合集(3-3) (demo,api,tutorial)---tutorial 第三部分结束 可以解压了
tutorial 1 - create a simple web dynpro application 本教程主要讲解了如何创建一个简单的 Web Dynpro 应用程序,Web Dynpro 是 SAP 提供的一种基于 Java 或 ABAP 的 Portal 应用开发技术。 在本教程中,我们...
4. **数学基础**: - **向量**:表示方向和大小的量,用于表示位置、速度和力。 - **矩阵**:用于3D变换,如旋转、缩放和平移。 - **四元数**:处理3D旋转的一种高效方法,避免了万向节锁问题。 5. **编程语言**...
### Web Dynpro for ABAP:创建简单Web Dynpro应用程序教程 #### 教程概述 本教程作为Web Dynpro for ABAP系列教程的第一部分,旨在帮助初学者了解如何使用SAP NetWeaver平台上的Web Dynpro工具来构建基本的Web...
### Java™ Web Services 教程知识点详解 #### 一、教程概述 《Java™ Web Services 教程》是一本指导开发者使用 Java Web Services Developer Pack(Java WSDP)开发 Web 应用程序的专业指南。该教程由 Sun ...
railstutorial3rd-1.0.2 分享给大家了
Iptables Tutorial 1.2.0 - iptalbes的使用手册
OpenCV-Python-Tutorial-master OpenCV-Python-Tutorial-master OpenCV-Python-Tutorial-master‘ opencv的演习源代码和图片
fuzzing-tutorial fuzzing 从入门到进阶,这里收录了经典的 fuzzing 书籍、历年安全顶会上有关 fuzzing 的经典论文、常用的 fuzzing 工具、可以快速入手 fuzzing 工具的博客。 Table of Contents 1 Books (2019):该...
Radio Systems Engineering_ A Tutorial Approach-2015
This Embedded Linux Hands-on Tutorial – ZedBoard will provide step-by-step instructions for customizing your hardware, compiling Linux Kernel and writing driver and user applications. This ...
A beautifully clear tutorial on Vert.x, it helps you develop a real-time web application from the ground up. Overview Get started with developing applications for the real-time web From concept to ...
JavaSE 7u45--tutorial 总共有三部分,此为第二部分,必须全部下载