swagger接口未授权怎么玩?

这篇具有很好参考价值的文章主要介绍了swagger接口未授权怎么玩?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

今天来分享下我是如何自动提取 swagger 中配置的 API 接口的,在此之前,先来了解下 swagger 是什么?下面是 chatgpt 的回答:

总结起来就是一套方便开发人员设计、构建 API 的框架,国内外应用非常广泛,大家在日常信息收集的时候经常会遇到这样的系统,比如通过谷歌语法可以轻松找到:

还可以使用网络空间搜索引擎,比如 fofa:

足以看出使用量是非常广泛来,当然,还有很多是隐藏在网站目录中的,需要通过目录枚举来发现这类系统。随便打开一个看看这个系统长什么样:

上图是配置的一些 API 接口信息,点击其中任意一个接口,会有该 API 详细的信息,比如:

手工测试时,可以根据接口的描述,进行针对性的测试,即方便了开发人员,如果存在未授权访问的情况下也方便的攻击者,而我们作为白帽子,这种系统可以扩展我们测试范围,从而发现更多问题。

所以对于企业而言,这种系统,可以设置访问权限,仅限相关开发人员访问,或者将其设置内网访问,尽量不要将其映射至外网,从而降低这类信息比恶意利用的风险。

今天的主要目的是如何通过编写脚本自动化提取其中的接口,从而实现自动化测试,适用于大量目标的测试。

【----帮助网安学习,以下所有学习资料免费领!加vx:yj009991,备注 “博客园” 获取!】

 ① 网安学习成长路径思维导图
 ② 60+网安经典常用工具包
 ③ 100+SRC漏洞分析报告
 ④ 150+网安攻防实战技术电子书
 ⑤ 最权威CISSP 认证考试指南+题库
 ⑥ 超1800页CTF实战技巧手册
 ⑦ 最新网安大厂面试题合集(含答案)
 ⑧ APP客户端安全检测指南(安卓+IOS)

通过查看网站访问的数据包,可以发现所有接口信息是通过 api 返回数据,再通过前端的 javascript 进行格式化成方便操作的页面,所以我们只需要找到那个返回数据的接口,进行分析提取即可,如图:

上面的案例是 openapi 的 3.0 版本,下面是 swagger 2.0 版本:

经过分析,发现,不同版本的格式有略微的差别,所以在做自动化分析的时候,需要根据不同版本做相应的处理。

从上面的案例同样可以看出,返回接口数据的接口不太一样,第一个是 swagger.json,第二个是 swagger-docs,所以在收集这类数据接口的时候,需要指定常见接口名称和路径的字典,从而发现更多可以返回 API 数据的接口。

下面分别以这两个版本的接口作为案例,解析其中的 API,然后在参数部分添加默认值,输出 API 接口列表,从而应用在其他漏洞扫描器中进行漏洞探测。

1、基于 openapi 3.0 版本,提取接口列表

核心其实就是写一个函数将接口数据中的参数增加默认值后输出即可,一个完整的接口配置如图:

其中 statusCode 是路径中的参数,可以将默认值设为 1,get 表示该接口是通过 GET 方法请求,parameters 就是需要配置的接口参数,name 就是参数的名称,schema 就是参数的类型是数字,我们在自动提取的时候,可以根据参数的类型设置默认值,也可以直接都设置成数字,根据自己的需要来。

简单写了一个解析函数,输出的结果如图:

2、基于 swagger 2.0 版本,提取接口列表

方法其实大同小异,只是格式不同而已,解析出的格式如图:

关于参考脚本可以前往【渗透测试那些事儿】知识星球获取,由于代码并不成熟,所以就不公开分享了,互联网上也有同类型的脚本可以参考:

https://github.com/jayus0821/swagger-hack

在实现解析单个脚本的能力之后,那么就是如何收集更多类似接口,这里推荐 nuclei 的 POC 模板,也可以根据自己的经验进行添加:

https://github.com/projectdiscovery/nuclei-templates/blob/e6c20a24de75a63b3ce01fd25925aef4604cd34c/http/exposures/apis/swagger-api.yaml#L47

比如我们刚才测试的目标:

第一个目标测试出了一个 js 文件,第二个没有测试出来,说明这个 POC 中配置的字典并不全面,这种情况,自己可以将未收录的路径添加到 POC 中,从而扩展工具的能力。

转载自:信安之路  作者:myh0st

更多网安技能的在线实操练习,请点击这里>>

  文章来源地址https://www.toymoban.com/news/detail-760739.html

到了这里,关于swagger接口未授权怎么玩?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 初学者不会写接口怎么办?微软Visual Studio 2022无脑式API接口创建——Swagger一键导入APIKit快速测试

    目录 VsualStudio2022各版本说明 社区版本具体说明 VisualStudio2022下载选项 VisualStudio2022启动样式 VisualStudio2022图标样式 VisualStudio2022初始内存消耗 创建项目ASP.NET Core项目 具体项目创建 编辑项目名称与项目位置 创建配置 创建API控制器 修改路由配置 配置跨域 准备创建接口 创建【

    2024年02月05日
    浏览(51)
  • 若依微服务swagger如何不显示某个模块的接口文档?

    在若依微服务项目中,如果不想暴露某个模块的swagger的接口文档,需要怎么做? 本文以ruoyi-gen模块进行举例说明。    默认情况下,可以看到这里包含了ruoyi-gen模块,我们要做的是,要将ruoyi-gen进行隐藏。 最终的预期结果如下图所示,可以看见,下图中,是不包含ruoyi-gen这

    2024年02月07日
    浏览(44)
  • 技术分享 | 接口测试请求超时怎么办?

    作为一名软件测试技术面试官,经常会通过提问一些基础性的实践来考查候选人是否真正拥有相关的技术经验,在接口测试中我们经常会遇到请求超时的情况。这是一个非常普遍的问题,这就需要在平时的错误中来总结经验了以便在面试时可以举例说明报错及自己的排查过程

    2024年02月09日
    浏览(67)
  • 在SpringBoot中通过配置Swagger权限解决Swagger未授权访问漏洞

    博主 默语带您 Go to New World. ✍ 个人主页—— 默语 的博客👦🏻 《java 面试题大全》 🍩惟余辈才疏学浅,临摹之作或有不妥之处,还请读者海涵指正。☕🍭 《MYSQL从入门到精通》数据库是开发者必会基础之一~ 🪁 吾期望此文有资助于尔,即使粗浅难及深广,亦备添少许微薄

    2024年04月23日
    浏览(41)
  • 【解决问题】在SpringBoot中通过配置Swagger权限解决Swagger未授权访问漏洞

    Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。其中,Swagger-UI会根据开发人员在代码中的设置来自动生成API说明文档。若存在相关的配置缺陷,攻击者可以在未授权的状态下,翻查Swagger接口文档,得到系统功能API接口的详细参数,再

    2024年02月02日
    浏览(44)
  • 一文解决:Swagger API 未授权访问漏洞问题

    Swagger 是一个用于设计、构建、文档化和使用 RESTful 风格的 Web 服务的开源软件框架。它通过提供一个交互式文档页面,让开发者可以更方便地查看和测试 API 接口。然而,在一些情况下,未经授权的访问可能会导致安全漏洞。本文将介绍如何解决 Swagger API 未授权访问漏洞 问

    2024年02月08日
    浏览(48)
  • spring boot未授权访问及Swagger漏洞处理

    无需修改源码,处理spring boot未授权访问及Swagger漏洞处理 风险程度 :【高危】 漏洞概述 : 未授权访问可以理解为需要安全配置或权限认证的地址、授权页面存在缺陷,导致其他用户可以直接访问,从而引发重要权限可被操作、数据库、网站目录等敏感信息泄露。登陆验证一

    2024年02月16日
    浏览(42)
  • 解决BladeX微服务Swagger资源未授权访问漏洞

    客户线上环境,第三方进行安全检测时候,反馈来一个\\\"Spring\\\"接口未授权访问漏洞。如图: 服务平台后端采用开源框架BladeX微服务版本。BladeX 是由一个商业级项目升级优化而来的SpringCloud微服务架构,采用Java8 API重构了业务代码,完全遵循阿里巴巴编码规范。采用Spring Boot

    2024年04月17日
    浏览(35)
  • 大数据趣味学习探讨(二):我是怎么坚持学习的

    CSDN话题挑战赛第2期 参赛话题:大数据趣味学习探讨 文章目录 要不要学,为什么要学大数据,最好的机会没有之一 一、根本性的问题 1、打仗最重要的是什么? 2、为什么总是知行不一 二、大数据到底好在哪 1、结论 2、大数据为什么是金矿 三、体系的学习方式 1、打仗最重

    2024年01月16日
    浏览(39)
  • 我是怎么把win11一步一步变成Mac的

    目录 【三指拖动】 【空格预览】  【切换Ctrl和Alt】 【使用Linux命令】  【Terminal终端工具】 自带终端 Fluent Terminal 【其它】  之前很长一段时间在MacBook上面开发习惯了,然后因为一些原因现在换到了windows上面,不管是使用上还是系统上都很不习惯,因此做了一些改造,慢慢

    2024年02月11日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包