实战中的WebService利⽤⽅法

admin 2025年1月28日14:49:21评论7 views字数 2253阅读7分30秒阅读模式
声明:该公众号大部分文章来自作者日常学习笔记,未经授权,严禁转载,如需转载,联系洪椒攻防实验室公众号。请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。

0x00 前言

    接口相关的测试,http 协议的接口大家平常基础的很多,基本上问题不大。webservice 接口如何测试呢?

什么是web service?

    通俗来讲 soap 协议开发的接口对应的服务就是web service接口,通过 SOAP 在 Web上 提供的软件服务,使用 WSDL 文件进行说明,并通过 UDDI 进行注册。有以下几个特点

    基于Web的服务:

  • 服务器端整出一些资源让客户端应用访问(获取数据)
  • 一个跨语言、跨平台的规范(抽象)
  • 多个跨平台、跨语言的应用间通信整合的方案(实际)

    http 协议开发的接口对应的服务,我们叫http service。

SOAP 协议是什么?

Webservice是基于 SOAP 协议传输数据,SOAP 又是一种简单的基于 XML 的协议,它使应用程序通过 HTTP 来交换信息。 

WSDL(Web Services Description Language)基于XML语言,用于描述Web Service及其函数、参数和返回值。它是WebService客户端和服务器端能理解的标准格式。

基于 XML 的,所以 WSDL 既是机器可阅读的,又是人可阅的,这将是一个很大的好处。——可以视为接口文档。

  • wsdl示例: http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl

0x01 渗透测试中的WebService

    在渗透测试过程中,会通过扫目录或者是其他方式得到各种的WebService页面:

  • IIS的webserver实战中的WebService利⽤⽅法实战中的WebService利⽤⽅法
  • java的:实战中的WebService利⽤⽅法

0x02 怎么测试呢?

    许多文章都是写的使用postman、WSDigger、soapui等等,但我觉得这些都是给开发人员用的。

    作为一名渗透测试工程师、当然还是burpsuite使用的最顺手了。burp官方提供了一个测试工具:Wsdler,在burp的Bapp Store就可以直接安装

实战中的WebService利⽤⽅法

    wsdl接口打开是这样的:http://xxxx.com/services/UserService?wsdl

实战中的WebService利⽤⽅法

    在burp里找到请求消息,然后右键选择Extensions、选择Wsdler就可以了:

实战中的WebService利⽤⽅法

    然后会在wsdler模块得到像下面这种:

实战中的WebService利⽤⽅法

    工具会自动生产xml格式的请求包,标注的地方是需要我们根据具体接口信息去构造的。

    个人很喜欢这种Web servers,因为里面的wsdl接口大多数会存在未授权漏洞(个人觉得,遇到十个有七八个存在未授权)。

    IIS的webserver大部分可以直接在页面进行调试的,比如:

http://xxxxxx:83/WebService.asmx?op=homemenu

实战中的WebService利⽤⽅法

    输入admin即可获取数据:

实战中的WebService利⽤⽅法实战中的WebService利⽤⽅法

    页面直接调试就基本上看到的是正常的post请求,但如果页面没有调试的webserver该怎么测试呢?

    从页面看到的请求是http://xxxxx.com:83/WebService.asmx

    这种其实是支持SOAP协议的,直接将请求变为WebService.asmx?wsdl即可实战中的WebService利⽤⽅法    然后再利用burp工具wsdler自动生成xm格式请求、一样的可以获取数据:

实战中的WebService利⽤⽅法

    除了正常获取数据,还可以测试SQL注入、XXE等,根据web service有什么接口进行具体测试实战中的WebService利⽤⽅法实战中的WebService利⽤⽅法

    sqlmap一把梭即可,运气好有文件上传时,直接构造上传getshell。

0x03 案例1

    这是一次某次hw中的实战案例,目标存在一个iis的web server页面实战中的WebService利⽤⽅法实战中的WebService利⽤⽅法实战中的WebService利⽤⽅法实战中的WebService利⽤⽅法    还可以对物联网设备进行控制:

实战中的WebService利⽤⽅法

    然后某个接口存在SQL注入,直接os-shell获取权限,powershell上线进入内网,打穿出局

实战中的WebService利⽤⽅法

0x04 案例2

    某次渗透测试中,目标单位OA系统存在Web server,发现存在一个用户接口queryUsers

实战中的WebService利⽤⽅法

    wsdler工具自动生成xml格式,需要自行构造参数,

实战中的WebService利⽤⽅法

    参数有userid、userName、orgSysCode,优先尝试userid=1,username=admin,其他不知道的参数可以留空,发包测试、可以看到并没有返回数据,可能构造的不对,各位师傅遇到了自行尝试。

实战中的WebService利⽤⽅法

    笔者个人习惯(也算是一点小经验吧),在遇到这种涉及page、size参数的,我索性直接将其他参数删掉,只保留page、size参数,往往会出东西:

实战中的WebService利⽤⽅法

    直接获取所有的用户信息,再利用id查询密码:

实战中的WebService利⽤⽅法

    直接获取OA系统所有的账号密码,md5解密即可登陆系统获取大量敏感信息。

0x05 案例3

    某次SRC项目挖掘中遇到一个asp.net的站点,不存在目录遍历漏洞,但是是怎么发现存在WebService的呢?

    搜索接口:

实战中的WebService利⽤⽅法

    发现接口是/Services/xxxx.asmx,直接访问显示拒绝访问:实战中的WebService利⽤⽅法

    但是在xxxx.asmx后面加上?wsdl,即可获取到所有接口:实战中的WebService利⽤⽅法

    再利用burpsuite自带工具wsdler生成数据包,直接获取敏感信息。实战中的WebService利⽤⽅法

0x06 总结

    WebService测试还是比较简单的,主要就是根据有哪些接口、然后再针对的进行测试。而且大多数存在未授权和SQL注入,个人还是很喜欢遇到WebService的(特别是IIS,很容易有注入)。

原文始发于微信公众号(洪椒攻防实验室):实战中的WebService利⽤⽅法

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月28日14:49:21
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   实战中的WebService利⽤⽅法https://cn-sec.com/archives/3666966.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息