使用Burp攻击Web Services

暗月博客 2019年11月21日18:02:29评论528 views字数 1078阅读3分35秒阅读模式

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文件。
使用Burp攻击Web Services
当针对wsdl的请求被中断之后,右键点击请求并选择解析WSDL。
使用Burp攻击Web Services
会打开一个新的wsdler标签并将解析后的WSDL中的方法信息展示出来,还有针对每个方法的绑定和端口信息。简单来说,绑定信息描述了每个方法所使用 的格式以及通信的协议。这里针对所有方法的绑定是InstantOrderSoap和InstantOrderSoap12。这里有两个绑定是因为 wsdl文件支持对SOAP1.1和1.2分别创建请求,所以会有两个版本。最后,针对每个方法的端口信息就是这个请求将要被发送到的目的地信息。关于 WSDL中所有节点属性的意义可以在这里找到:http://www.w3.org/TR/wsdl
使用Burp攻击Web Services
针对方法的SOAP请求会在Burp下半部分的窗口中展示出来。插件中的解析函数还会自动填充方法中每个参数的数据类型。
Wsdler构造的请求是标准的Burp请求,因此它可以被Burp其他的模块直接使用。
使用Burp攻击Web Services
这里SOAP请求被发送到了intruder模块来进行进一步测试。因为请求是基于XML的,Burp会自动识别出intruder要用到的参数。

使用Burp攻击Web Services
目前,插件仅支持WSDL 1.1,但是我们正在更新对1.2/2.0的支持。此外我还会加入一个功能可以指定你自己的字符串和整型参数。如果有任何Bug或哪些功能你希望被添加,给我发邮件或直接在Github上联系我。

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
暗月博客
  • 本文由 发表于 2019年11月21日18:02:29
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   使用Burp攻击Web Serviceshttps://cn-sec.com/archives/70890.html

发表评论

匿名网友 填写信息