使用Burp攻击Web Services

2013-03-07 355511人围观 ,发现 11 个不明物体 WEB安全

译: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]

这些评论亮了

  • pnig0s 回复
    还以为是原创的,原来是翻译的...
    )15( 亮了
发表评论

已有 11 条评论

取消
Loading...
css.php