乐于分享
好东西不私藏

【SRC篇】Swagger接口文档测试小Tips

【SRC篇】Swagger接口文档测试小Tips

本文涉及漏洞已完成验证并上报,相关敏感信息已脱敏处理。仅供安全研究与学习交流,请勿用于非法用途。

0x01 前言

 突然想起来好久没写文章了,正好最近挖众测记录一下,文章涉及内容较为常规,顺便分享一下个人的swagger接口文档的一些测试方法,当然其中的一些方法也是学习其他师傅的,顺便共享交流一下~

0x02 漏洞发现

访问系统,这里登录仅能通过微信扫码登录,直接扫码测试,一般这种登录需要老师绑定个人信息使用系统,这里扫码输入个人信息绑定:

输入非系统信息是需要管理员授权访问:
查看登录过程请求数据包,这里已经获取了系统的凭证:
使用凭证扫描测试,发现api文档:
之前测试api文档,基本是使用hae正则提取所有接口去遍历,另外是借助一些其他师傅开发的工具自动化测试,比如说:
不过使用该工具测试我想分享一些个人建议,去掉除GET以外的所有请求方式,当然我也不太建议使用自动化测试,因为这样测试太过于危险,虽然已经去掉了删除编辑移除等接口以及使用GET方式请求,自认为已经比较安全的测试了,但是在某一次测试过程中,有一个接口是用来初始化系统数据库配置的,好巧不巧还是GET请求,导致初始化了数据库配置也是被平台警告了-_-
/api-docs有没有能够可视化的测试办法呢,可以像swagger-ui.html可视化界面测试,当然是有的:
  • 可以把请求获取的api文档响应包直接交给AI,生成swagger-ui的格式,完全可以,但是每碰到一个文档都用来生成也太过于麻烦了
  • 省心版(其他师傅那里学来的),直接使用浏览器插件,效果如下:
但是这里会碰到两个问题:
1.请求host有问题,如下:
请求使用了内网IP,导致burpsuite抓不到数据包,这里解决方法也比较多,可以使用burp自带的Match and replace模块替换host,或者使用MaR工具替换,但是我发现一个更好用的方法,仅分享给不知道的师傅哈~
在使用插件请求api文档的过程中,获取返回包:
修改返回包内的host参数值为请求api文档的域名,然后就可以开始愉快的抓包测试了,但是又出现了另外一个问题:
2.basePath路径不对
导致请求的接口都为404,解决方法也是跟上一个问题相同,修改返回包中的basePath值为正确的值,就可以愉快的测试了
最后也是,顺利测到一个接口可以越权导出,导致大量用户个人敏感信息泄露:

0x03 最后

最后结算时间,高危拿下~