swagger未授权进阶

admin 2024年11月5日13:50:15评论6 views字数 1066阅读3分33秒阅读模式

前言

Swagger是一个spring二开的 RESTful风格的 Web 服务的开源软件框架,它有一个交互式文档页面,可直接在网页进行发送接口请求测试。

当无需输入密码查看文档时,即存在swagger未授权。

swagger未授权进阶

swagger未授权一般是一个低危或者忽略,因此我们需要进一步对接口进行测试。

swagger未授权进阶

转发扫描

虽然swagger提供交互式按钮,我们可以直接在网页发送请求包进行测试,但api接口太多,我们会点到手抽筋。

swagger未授权进阶

swagger未授权进阶

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

原工具可以构造接口,于是我们可以将工具的流量转发至扫描工具。

一、修改脚本,添加转发代理选项--proxy

swagger未授权进阶

swagger未授权进阶

swagger接口地址一般类似如图所示。

swagger未授权进阶

用法一:联动burp,设置xray为上游代理。

burp设置上游代理

swagger未授权进阶

脚本指定burp端口8080

swagger未授权进阶

debug完之后,会生成一个swagger.csv文档,其中记录所有接口信息,可查看响应体是否有敏感信息。

swagger未授权进阶

同时,我们的burp history会有所有的接口请求。

200响应码:说明该接口是未授权访问接口,可以进一步测试sqli、越权、url跳转等漏洞。

swagger未授权进阶

404响应码:说明该接口没有资源或者我们接口没有调对。

比如如下接口,正确的传参是在url请求行,说明脚本还有点瑕疵。

swagger未授权进阶

swagger未授权进阶

401响应码:说明接口已鉴权

swagger未授权进阶

用法2:直接指定xray、ez等扫描器监听端口

开启xray监听

swagger未授权进阶

指定xray监听端口,开扫。

swagger未授权进阶

swagger未授权进阶

二、修改脚本,剔除delete方法

原工具设置了一些全局变量,在发包的时候作为默认值true 1 0等,如果直接扫描的话,delete方法存在sqli、未授权时可能会有吃牢饭的风险。swagger未授权进阶

swagger未授权进阶

修改脚本,将delete方法只做记录,不转发至代理。

swagger未授权进阶

api工具转发

上面说的工具实际测试在构造发包时有点小瑕疵,一些接口没有正确构造返回415、404。

swagger未授权进阶

我们可以使用专业的接口测试工具,经过我的对比,apifox soapui postman这三款工具中,apifox更好用一点,测试非常方便且有中文

使用方法:

1、导入swagger文档

swagger未授权进阶

swagger未授权进阶

2、设置前置url,也就是一级目录

swagger未授权进阶

swagger未授权进阶

3、设置转发代理为burp监听端口

swagger未授权进阶

4、自动化测试所有接口

新建自动化测试

swagger未授权进阶

导入swagger接口

swagger未授权进阶

swagger未授权进阶

点击运行,会生成测试结果。

swagger未授权进阶

swagger未授权进阶

同时,我们的上游burp也会有流量。

swagger未授权进阶

总结

1、swagger未授权进一步测试,主要找出未鉴权的接口后进行进一步的漏洞探测。

2、前文转发扫描工具,可关注公众号回复swagger-modify

swagger未授权进阶

原文始发于微信公众号(rainy的安全小屋):swagger未授权进阶

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月5日13:50:15
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   swagger未授权进阶https://cn-sec.com/archives/3356340.html

发表评论

匿名网友 填写信息