一 WSDL 类
- WSDL 描述 Web 服务的公共接口。这是一个基于 XML 的关于如何与 Web 服务通讯和使用的服务描述;也就是描述与目录中列出的 Web 服务进行交互时需要绑定的协议和信息格式。通常采用抽象语言描述该服务支持的操作和信息,使用的时候再将实际的网络协议和信息格式绑定给该服务。
- WSDL 元素基于 XML 语法描述了与服务进行交互的基本元素:
Type(消息类型):数据类型定义的容器,它使用某种类型系统(如 XSD)。
Message(消息):通信数据的抽象类型化定义,它由一个或者多个 part 组成。
Part:消息参数
Operation 操作):对服务所支持的操作进行抽象描述,WSDL 定义了四种操作: 1. 单向(one-way):端点接受信息;2. 请求-响应(request-response):端点接受消息,然后发送相关消息;3. 要求-响应(solicit-response):端点发送消息,然后接受相关消息;4. 通知(notification):端点发送消息。
Port Type(端口类型):特定端口类型的具体协议和数据格式规范。
Binding:特定端口类型的具体协议和数据格式规范。
Port:定义为绑定和网络地址组合的单个端点。
Service:相关端口的集合,包括其关联的接口、操作、消息等。
通过命令可下载 CsharpVulnSoap 靶机
wget http://volatileminds.net/CsharpVulnSoap.ova
Bsh复制
- 访问靶机 URL:http://ip/Vulnerable.asmx?wsdl

将页面请求通过 burpsuite 抓包后,使用 Wsdler 模块即可解析请求。



解析出 HTTP 请求后,剩下的该怎么挖洞就怎么挖了:)

二 API 接口类
市面上常见的 API 请求构建工具形式有独立的桌面程序、命令行程序、浏览器扩展、Web 服务等几种,比较著名的 API 请求构建工具有 Postman、Swagger Inspecter、Soap UI、Apigee 等等。国内有一些公司也通过 Web 服务的方式提供 API 测试功能,例如网易数帆的 GoAPI,还有像 curl 这样免费的不需要图形界面也可以直接进行 HTTP API 测试的工具。
之前有很多 API 请求构建工具都是商业软件,或者免费版仅仅提供很有限的功能。其中曾经最流行的 Postman 在收费之后就很被开发者社区诟病。有位印度裔小哥 Liyas Thomas 对此极为不爽,就发布了一个新的工具叫:Postwoman,显而易见,Postwoman 是专怼 Postman 的。
2020 年 8 月,Liyas 小哥可能觉得一直怼 Postman 也挺 low 的,2020 年 8 月决定改名叫 hoppscotch 了。
2.1 hoppscotch 安装
- 使用 docker 直接可完成启动
docker run --rm --name hoppscotch -p 3000:3000 hoppscotch/hoppscotch:latest

随后访问 http://IP:3000 成功打开页面代表安装成功。

2.2 搭建开源安全工具 fuxi
docker pull jeffzh3ng/fuxi
docker run -itd --name fuxi_docker -p 5000:50020 jeffzh3ng/fuxi:latest
Default username: fuxi
Default password: whoami
- 其官方 API 文档链接为:https://github.com/jeffzh3ng/fuxi/blob/v2.1/docs/fuxi_api_doc_chinese.md
- 我们挑选了部分内容:
- 如何获取 token
/api/v1/token?username=fuxi&password=whoami
- /api/v1/token
请求模式 | 参数 | 功能描述 |
---|---|---|
GET | username(string, required) password(string, required) | 获取当前用户 token |
PUT | username(string, required) password(string, required) | 刷新当前用户 token |
- poc 扫描模块接口
- /api/v1/scanner/poc/task
- 接口描述:新增 poc 扫描任务,获取当前任务列表
请求模式 | 参数 | 参数描述 | 接口描述 |
---|---|---|---|
GET | 获取扫描任务列表 | ||
POST | name(string,required)target(string,required)poc(string,required)threads(int)freq(string,required) | 任务名称 扫描对象,以逗号分隔 扫描插件 ID,以逗号分隔 任务周期:daily weekly monthly | 新增扫描任务 |
- 通过 API 接口获取 token
- http://192.168.0.101:5000/api/v1/token?username=fuxi&password=whoami

- 通过 API 接口获取任务
- http://192.168.0.101:5000/api/v1/scanner/poc/task?token=190e0930b829a22d3b8f359406c50ebd98d57c8d

- 通过 API 接口提交任务
- http://192.168.0.101:5000/api/v1/scanner/poc/task?token=190e0930b829a22d3b8f359406c50ebd98d57c8d


三 接口类测试的思路总结
- 有工具能吐吐吐呢,就直接吐吐吐,如同 WSDL 一样
- 没有的话呢,就是看 API 的说明书,如果 API 一样
- 但实际上,测试接口类本质都是识别出来 http 请求
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容