Swagger ui接口自动化批量漏洞测试

Swagger介绍 #

Swagger 是一个用于生成、描述和调用 RESTful 接口的 Web 服务。通俗的来讲,Swagger 就是将项目中所有(想要暴露的)接口展现在页面上,并且可以进行接口调用和测试的服务。

在平时渗透测试的的时候,经常会发现Swagger ui(swagger-ui是将api接口进行可视化展示的工具)接口泄露,如下,在这个页面中暴露了目标站点中所有的接口信息,所以可以对这个接口进行漏洞测试,看是否存在未授权访问、sql注入、文件上传等漏洞。由于接口太多,一个个接口测试的话太费时间,所以出了这篇自动化接口漏洞测试文章

利用思路:

  • 将Swagger ui中所有的接口导入到postman
  • postman设置代理,将流量转发给burpsuite,方便观察发包情况
  • 对导入的所有api自动运行测试,让postman自动对每个api进行请求
  • burpsuite挂上xray,进行漏洞检测

postman #

postman是一个api接口自动化测试工具,下载:Download Postman | Get Started for Free

导入Swagger Api #

  1. 访问Swagger ui,箭头中的就是api接口地址,将其复制

与域名拼接后访问一下,将整个地址复制“https://xx.com/cdy-api-mng/v2/api-docs”

  1. 打开postman

点击“import”,在Link下填上刚才复制的api地址,点击继续

然后点击import,进行导入

导入成功后,可在apis中查看刚才导入的整个Swagger api接口

设置Environment #

Environment即环境变量,随便点击一个地址过去看一下,这里的baseurl是一个变量,postman对所有api的请求的格式都是“http://ip/详细地址”,http://ip为变量,需要设置值。把鼠标放在baseUrl处,会显示其值,将其地址记住

点击如下Add,添加“active Environment”

填写如下,设置变量名为test。其值设置为“https://xx.xx.com/cdy-api-mng/”

然后选择刚刚设置的环境"test"

此时再点击就能看到我们设置的环境

最后可以尝试进行发包测试了

代理设置 #

给postman设置一个代理,代理地址为burp的监听地址。这样burpsuite就能接收来自postman的数据包

接收到http数据,则说明代理成功

批量自动化测试 #

api接口地址众多,如果一个个接口点击进行测试,效率太过于低下。所以需要批量自动进行测试

定位到第一行,点击“Test and Automation”

点击“run”

继续点击

postman会自动对所有的api进行发包测试,此时在burpsuite中可以查看到具体的数据包

结合xray #

为了最大程度实现自动化漏洞挖掘,我们可以同时把流量转发给xray进行漏洞探测。burp配置代理,将流量转发给xray

xray开启监听,接收来自burp的流量

开始自动化对所有api接口进行扫描