译:pnig0s_小P
WSDL是一种XML格式的描述文档,用来描述web services在客户端与服务端之间通信接口的信息。它包含应用在和web services通信中可能用到的参数信息。这对渗透测试人员来说是一个好消息,因为我们通过wsdl文档中的描述信息来对web services进行测试和操作。
Burp是用来处理HTTP请求和响应的最好的工具之一。不过美中不足的是Burp并不原生的支持对WSDL文件的解析。通常我们的解决办法是使用SOAP-UI,并搭建一个代理来处理由SOAP-UI产生的请求。我已经写了一个插件来使得Burp能够接收一个WSDL请求并将其中的方法解析出来,并构造出对应的SOAP请求,方便测试人员发送请求到远端的web service。
Wsdler插件及其源码信息在Github的仓库地址:
https://github.com/NetSPI/Wsdler
Wsdler要求:
1,Burp1.5.01及更高版本。 2,必须从cmd来启动Burp
启动wsdler(插件和主程序放在同一目录下)
java -classpath Wsdler.jar;burp.jar burp.StartBurp
使用样例:
这里我们会中断一个在线商店的wsdl文件。
当针对wsdl的请求被中断之后,右键点击请求并选择解析WSDL。
会打开一个新的wsdler标签并将解析后的WSDL中的方法信息展示出来,还有针对每个方法的绑定和端口信息。简单来说,绑定信息描述了每个方法所使用的格式以及通信的协议。这里针对所有方法的绑定是InstantOrderSoap和InstantOrderSoap12。这里有两个绑定是因为wsdl文件支持对SOAP1.1和1.2分别创建请求,所以会有两个版本。最后,针对每个方法的端口信息就是这个请求将要被发送到的目的地信息。关于WSDL中所有节点属性的意义可以在这里找到:http://www.w3.org/TR/wsdl
针对方法的SOAP请求会在Burp下半部分的窗口中展示出来。插件中的解析函数还会自动填充方法中每个参数的数据类型。
Wsdler构造的请求是标准的Burp请求,因此它可以被Burp其他的模块直接使用。
这里SOAP请求被发送到了intruder模块来进行进一步测试。因为请求是基于XML的,Burp会自动识别出intruder要用到的参数。
目前,插件仅支持WSDL 1.1,但是我们正在更新对1.2/2.0的支持。此外我还会加入一个功能可以指定你自己的字符串和整型参数。如果有任何Bug或哪些功能你希望被添加,给我发邮件或直接在Github上联系我。
via[netspi]