什么是接口?

接口就是位于复杂系统之上并且能简化你的任务,它就像一个中间人让你不需要了解详细的所有细节。像谷歌搜索系统,它提供了搜索接口,简化了你的搜索任务。再像用户登录页面,我们只需要调用我们的登录接口,我们就可以达到登录系统的目的。

接口拥有各种功能,如:文件上传,查询,添加,删除,登录等等。我们就可以在这些接口上测试该功能漏洞。

接口漏洞测试:

WebService类-Wsdl

网站资产探针:目录扫描(?wsdl

数据传输类型:WSDL(WebServicesDescriptionLanguage)即网络服务描述语言,用于描述Web服务的公共接口。这是一个基于XML的关于如何与Web服务通讯和使用的服务描述;也就是描述与目录中列出的Web服务进行交互时需要绑定的协议和信息格式。通常采用抽象语言描述该服务支持的操作和信息,使用的时候再将实际的网络协议和信息格式绑定给该服务。

来到接口管理页面,可以看到很多接口,不可能一个个手工测试

工具:https://www.filehorse.com/download-readyapi/

使用工具ReadyAPI测试接口漏洞

1.打开工具,点击file—-新建安全测试

2.选择测试的接口类型,现在演示的是wsdl接口类型

3.填写你要测试的接口页面地址,注意:地址后面一定要加(” />

4.里面就是测试的漏洞,点击finish

5.点击run开始接口漏洞测试

测试完成会生成报告,点击view summary report

查看漏洞报告即可

SOAP类-Swagger信息泄露

数据传输类型:SOAP(SimpleObjectAccessProtocol)简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。SOAP不是WebService的专有协议。

SOAP使用HTTP来发送XML格式的数据,可以简单理解为:SOAP=HTTP+XML

网站资产探针:目录扫描和js资源

Fofa语法:“Swagger” && title==”Swagger UI”

目录:

/swagger

/api/swagger

/swagger/ui

/api/swagger/ui

/swagger-ui.html

/api/swagger-ui.html

/user/swagger-ui.html

/libs/swaggerui

/api/swaggerui

/swagger-resources/configuration/ui

/swagger-resources/configuration/security

js资源:判断加载的资源中有没有带有swagger等关键字的js文件

工具:https://github.com/jayus0821/swagger-hack

使用工具测试是否存在信息泄露:

1.来到接口管理页面,可以看到一个json文件路径

点击进入,可以看到这个json文件保存网站所有的接口信息

获取这个文件路径之后运行检测工具,

命令行输入:python swagger-hack2.0.py -u 目标json文件地址

使用python3运行

工具检测结束会在根目录生成一个csv文件,保存着检测详情

查看csv文件,可以看到一些敏感信息

HTTP类-WebPack-信息泄露

WebPack不能算是接口

什么是webpack?

WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其转换和打包为合适的格式供浏览器使用。

判断网站是否使用WebPack:插件和js资源

1.使用浏览器插件Wappalyzer识别。

2.查看网站加载的js资源是否有webpack关键字和是否随机命名。

工具:https://github.com/rtcatc/Packer-Fuzzer

使用工具PackerFuzzer检测webpack,工具会自动检测下载网站的js资源,分析是否存在安全问题,分析完毕会在工具reports目录生成报告。

运行工具需要安装许多模块,输入命令:pip3 install 模块名 。进行安装

使用python运行工具,输入:python PackerFuzzer.py -u 目标地址

检测完毕,生成报告

工具reports目录查看报告