什么是接口?
接口就是位于复杂系统之上并且能简化你的任务,它就像一个中间人让你不需要了解详细的所有细节。像谷歌搜索系统,它提供了搜索接口,简化了你的搜索任务。再像用户登录页面,我们只需要调用我们的登录接口,我们就可以达到登录系统的目的。
接口拥有各种功能,如:文件上传,查询,添加,删除,登录等等。我们就可以在这些接口上测试该功能漏洞。
接口漏洞测试:
WebService类-Wsdl
网站资产探针:目录扫描(?wsdl)
数据传输类型:WSDL(Web Services Description Language)即网络服务描述语言,用于描述Web服务的公共接口。这是一个基于XML的关于如何与Web服务通讯和使用的服务描述;也就是描述与目录中列出的Web服务进行交互时需要绑定的协议和信息格式。通常采用抽象语言描述该服务支持的操作和信息,使用的时候再将实际的网络协议和信息格式绑定给该服务。
来到接口管理页面,可以看到很多接口,不可能一个个手工测试
工具:https://www.filehorse.com/download-readyapi/
使用工具ReadyAPI测试接口漏洞
1.打开工具,点击file----新建安全测试
2.选择测试的接口类型,现在演示的是wsdl接口类型
3.填写你要测试的接口页面地址,注意:地址后面一定要加(?wsdl),因为该地址有网站所有的接口信息,工具也只识别此地址
4.里面就是测试的漏洞,点击finish
5.点击run开始接口漏洞测试
测试完成会生成报告,点击view summary report
查看漏洞报告即可
SOAP类-Swagger-信息泄露
数据传输类型:SOAP(Simple Object Access Protocol)简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。SOAP不是Web Service的专有协议。
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目录查看报告