欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

Web Service 渗透测试从入门到精通

来源:本站整理 作者:佚名 时间:2017-04-18 TAG: 我要投稿

一、Web Service的含义及使用范围
Web Service覆盖的范围非常广泛,在桌面主机、Web、移动设备等领域都可以见到它的身影。任何软件都可以使用Web Service,通过HTTP协议对外提供服务。
在Web Service中,客户端通过网络向服务器发起请求,Web服务器按照适当的格式(比如JSON、XML等)返回应答数据,应答数据由客户端提供给最终的用户。
提及Web Service时,我们首先需要解释以下概念:
SOAP(Simple Object Access Protocol,简单对象访问协议)型Web Service。SOAP型的Web Service允许我们使用XML格式与服务器进行通信。
REST(Representational State Transfer,表征性状态转移)型Web Service。REST型Web Service允许我们使用JSON格式(也可以使用XML格式)与服务器进行通信。与HTTP类似,该类型服务支持GET、POST、PUT、DELETE方法。
WSDL(Web Services Description Language,网络服务描述语言)给出了SOAP型Web Service的基本定义,WSDL基于XML语言,描述了与服务交互的基本元素,比如函数、数据类型、功能等,少数情况下,WSDL也可以用来描述REST型Web Service。
WADL(Web Application Description Language,网络应用描述语言)就像是WSDL的REST版,一般用于REST型Web Service,描述与Web Service进行交互的基本元素。
二、为什么写这篇文章
BGA团队专注于对机构、组织开放的Web应用、外部IP地址以及Web Service进行安全测试。
在渗透测试中,我们看到Web Service的应用范围越来越多广,但人们在使用Web Service时,并没有特别关注安全问题。出于这个原因,人们部署的Web Service中经常会出现重大安全漏洞。
我们将在本文中讨论Web Service渗透测试工作中经常遇到的技术和逻辑相关问题。
三、如何发现Web Service
我们可以使用以下方式发现Web Service:
1、使用代理软件,检查所捕获的数据。
2、通过搜索引擎探测Web应用程序暴露的接口(比如目录遍历漏洞、lfi(本地文件包含)等)。
3、爬取并解压swf、jar等类似文件。
4、模糊测试。
可根据实际情况选择所使用的具体方法。
举个例子,我们可以使用swf intruder工具,反编译某个.swf文件,从中挖掘Web Service的WSDL地址,如下图所示:

代理软件可以用来探测应用程序所使用的Web Service。
下图是在BurpSuite中设定的过滤规则,用来筛选抓包数据中的Web Service地址。我们可以通过搜索与表达式相匹配的数据,探测诸如“.dll?wsdl”、“.ashx?wsdl”、“.exe?wsdl”或者“.php?wsdl”等等的Web Service地址。

探测Web Service的另一种方法是使用搜索引擎,比如Google。比如,我们可以通过以下搜索语句在Google中找到Web Service:

Search string: filetype:asmx inurl:(_vti_bin | api | webservice | ws )


Search string: allinurl:dll?wsdl filetype:dll

对于Bing搜索引擎,我们可以使用以下语句查找Web Service:

asmx?wsdl site:us

我们也可以使用Wfuzz工具,查找Web Service,命令如下:
wfuzz -p 127.0.0.1:8080 -c --hc 404,XXX -z list,ws-webservice-webservisler -z
file,../general/common.txt -z file,ws-files.txt http://webservices.example.com/FUZZ/FUZ2ZFUZ3Z
我们可以通过“-p”参数,同时使用多个代理,以达到负载均衡。最后使用的代理服务器地址将会在tor网络中使用。

-p IP:port-IP:port-IP:8088

通过查看HTTP响应状态代码,从各个方面分析响应报文,我们可以找到正确的服务地址。根据上图结果,我们找到的Web Service如下图所示:

“wsdl”地址有时候可以是“.wsdl”,不一定都是“?Wsdl”形式。我们在搜索时要注意到这一点。比如,我们可以通过如下搜索语句,探测Web Service:

filetype:wsdl

四、Web Service中的渗透测试工具
我们可以操纵Web Service方法的具体参数,挖掘其中存在的各种技术和逻辑漏洞。我们可以使用以下专业工具对常见的Web Service进行渗透测试。

[1] [2] [3] [4]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载