干货 |网络安全中对 Swagger的多种测试方式

更多更好的内容请关注微信公众号“猎洞时刻”!!!

Swagger简介

Swagger是一种API文档生成工具,它可以通过扫描API代码或手动编写描述文件来生成API文档。Swagger UI是Swagger的一个交互式用户界面,它可以让开发者在浏览器中浏览和测试API。

当API开发者使用Swagger来生成API文档并使用Swagger UI来展示文档时,所有公开的API接口都会被暴露出来。这样做的主要目的是为了方便API的使用者查看和测试API接口,以及了解API的功能和参数等信息。

同时,Swagger UI还提供了一些交互式的功能,如API测试、请求和响应的预览等,使得API使用者可以更加直观地了解API的使用方式和效果。

总之,Swagger UI把接口暴露出来是为了方便API的使用者查看和测试API,提高API的可用性和易用性。

看到上面的简介就知道了,这个swagger的UI界面除了方便客户使用和查询接口,同时也方便了攻击者进行接口测试,从而发现安全漏洞。

下面我介绍对swagger的几种测试方式

一、在swagger原本页面进行测试

    可以看到,找到swagger UI界面后,是下面这个样子,直接把所有的接口都列出来了,但是要进行接口测试的时候,要注意DELETE方式,可能会造成一定的风险,不要随意测试。

图片

随机点击一个接口,输入上该接口要求的参数,点击try it out就能直接在该页面进行接口测试,返回值也会显示在该页面。

图片

二、使用SOAPUI工具进行分析测试

这样在页面直接进行测试可能不太方便,因此可以使用一款工具,将接口信息全部导入进去,然后就可以像在burp中的repeater模块中测试一样。

下载地址:https://www.soapui.org/

首先先点击Empty创建一个项目,创建后就在该项目右键,选择lmport Swagger/OpenAPI Definition 

图片

这里呢进行导入swagger中的接口,要注意不要直接导入swagger.html这种形式,要导入json文本格式或者api-docs格式。这两种格式,在你找到swagger那个UI界面之后,都是同时伴随着的,很容易就能找到。

图片

 

导入成功之后,就能直接在这个工具进行测试参数,就跟在burp中测试差不多。点击这个绿色的三角按钮就能不断发包。

这个工具也是能够对接口进行自动化探测,但是我一般不使用这个,我会使用下面的那个脚本工具进行探测。

图片

三、使用脚本进行快速探测接口

这个方法呢,也是我最喜欢和最常用的,使用脚本swagger-hacker.py进行快速探测接口是否可利用。

下载地址:
https://github.com/jayus0821/swagger-hack

找到一个swagger.json文件。

图片

这些自动化工具,对于swagger的测试都需要api-docs或者json格式!

该工具主要是对swagger的接口进行快速的探测接口的存活,说不定能够直接探测出信息泄露的接口,这样特么的就赚大了。

python .\swagger-hack2.0.py -u https://xxxx/swagger/v1/swagger.json

图片

文件里会导出测试后的记录!

图片

要是运气好了,找到一个信息泄露的接口,那就会出现下面这种情况,直接泄露大量人的个人信息和账号密码。

图片

四、结合漏扫工具测试漏洞

以上这个swagger-hack脚本工具呢,主要是对接口测试,测试这个接口能不能直接未授权使用,查看返回值是不是200,但是并不会对接口进行sql注入等测试,扫描后找到返回值为200的接口,可以使用burp+xray进行安全漏洞扫描。

通过上一步的扫描,找到返回值为200的接口,直接对接口进行抓包测试。

图片

设置好上游代理,将流量转发到xray进行扫描。

图片

随后xray开启监听

 .\xray.exe webscan --plugins sqldet --listen 127.0.0.1:8090 --html-output 1025.html

图片

接下来就能对该接口进行安全漏洞扫描。

更多更好的内容请关注微信公众号“猎洞时刻”!!!

  • 23
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值