实战中的WebService利⽤⽅法
2025-1-26 12:30:0 Author: mp.weixin.qq.com(查看原文) 阅读量:2 收藏

声明:该公众号大部分文章来自作者日常学习笔记,未经授权,严禁转载,如需转载,联系洪椒攻防实验室公众号。请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。

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页面:

0x02 怎么测试呢?

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

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

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

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

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

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

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

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

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

    输入admin即可获取数据:

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

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

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

    除了正常获取数据,还可以测试SQL注入、XXE等,根据web service有什么接口进行具体测试

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

0x03 案例1

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

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

0x04 案例2

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

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

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

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

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

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

0x05 案例3

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

    搜索接口:

    发现接口是/Services/xxxx.asmx,直接访问显示拒绝访问:

    但是在xxxx.asmx后面加上?wsdl,即可获取到所有接口:

    再利用burpsuite自带工具wsdler生成数据包,直接获取敏感信息。

0x06 总结

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

如果你是一个长期主义者,欢迎加入我的知识星球,我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款

往期回顾

一款bp神器

挖掘有回显ssrf的隐藏payload

ssrf绕过新思路

一个辅助测试ssrf的工具

dom-xss精选文章

年度精选文章

Nuclei权威指南-如何躺赚

漏洞赏金猎人系列-如何测试设置功能IV

漏洞赏金猎人系列-如何测试注册功能以及相关Tips


文章来源: https://mp.weixin.qq.com/s?__biz=MzIzMTIzNTM0MA==&mid=2247496952&idx=1&sn=fdb338f5ff8cf421424cfcc5c01bfbb7&chksm=e8a5fe9bdfd2778d4c2584e6f5e6b3ce81120dca35669befee62af7d00ae7ada9b06c0dc02fe&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh