0x1 前言
这篇文章呢主要是给师傅们分享下最近在学习的Swagger相关的漏洞,针对于Swagger接口未授权访问已经常见的敏感信息文件泄露的漏洞来给大家分享下。其中在挖企业src的是时候,其实在利用灯塔ARL在对其域名或者站点扫描时候,Swagger接口泄露的漏洞也是蛮常见的。
0x2 Swagger漏洞简介
Swagger
是一个用于设计、构建、文档化和使用RESTful
风格的 Web 服务的开源软件框架。它通过提供一个交互式文档页面,让开发者可以更方便地查看和测试API 接口
。然而,在一些情况下,未经授权的访问可能会导致安全漏洞。
下面是总结的常见的Swagger接口泄露信息存在的位置:
/actuator
查看有哪些 Actuator端点是开放的。
/actuator/auditevent
auditevents端点提供有关应用程序审计事件的信息。
/actuator/beans
beans端点提供有关应用程序 bean 的信息。
/actuator/conditions
conditions端点提供有关配置和自动配置类条件评估的信息。
/actuator/configprops
configprops端点提供有关应用程序<span class="label label-primary">@ConfigurationPropertiesbean?</span>??信息。
/actuator/env
查看全部环境属性,可以看到 SpringBoot 载入哪些 properties,以及 properties 的值(会自动用*替换 key、password、secret 等关键字的 properties 的值)。
/actuator/flyway
flyway端点提供有关 Flyway 执行的数据库迁移的信息。
/actuator/health
端点提供有关应用程序运行状况的health详细信息。
/actuator/heapdump
heapdump端点提供来自应用程序 JVM 的堆转储。(通过分析查看/env端点被*号替换到数据的具体值。)
/actuator/httptrace
httptrace端点提供有关 HTTP 请求-响应交换的信息。(包括用户HTTP请求的Cookie数据,会造成Cookie泄露等)。
/actuator/info
info端点提供有关应用程序的一般信息。
漏洞分析
Swagger漏洞
存在的原因主要是Swagger未开启页面访问限制,然后就是Swagger未开启严格的Authorize认证
,就很容易导致攻击者找到该站点存在Swagger泄露接口的地址,然后通过Swagger-UI插件
等一些工具进行敏感信息泄露利用。
注:Authorization
是指根据用户提供的身份凭证,生成权限实体,并为之授予相应的权限。
0x3 资产收集
FOFA
FOFA检索Swagger相关站点
body="Swagger" && title=="Swagger UI"
还有可以看到很多的icon图标,特别是对某个icon图标要是打通一个点,很有可能就能利用其打一个通杀漏洞了
但是其中主要的还是Swagger的那个绿色图标的站点多
鹰图
web.body="Swagger"&&title=="Swagger UI"
0x4 工具篇
上面我也给师傅们介绍了使用工具对Swagger
接口泄露进行一个扫描,下面给师傅们介绍下使用曾哥的spring-boot漏洞扫描工具
进行一个接口泄露的扫描。
https://github.com/AabyssZG/SpringBoot-Scan
python SpringBoot-Scan.py -u url
Swagger 也是spring二次开发的产品,所以一般找Swagger 接口信息泄露的漏洞可以去找spring-boot经典报错的页面,下面就是经典的spring-boot报错页面:
对于这样的大批量的测试的话,可以使用FOFA检索语句,就对上面的一个关键字进行检索
FOFA语句:
body="Whitelabel Error Page"
可以看到里面的icon数量非常多,
0x5 实战实例
泄露swagger文档
这里我先是通过上面的spring-boot工具扫描泄露到泄露swagger接口如下,
swagger-resources
然后我们可以对泄露的接口进行分析,可以简单看下泄露了一些版本信息包括可以看到这个站点存在OSS储存桶,到时候可以去判断下有没有云安全OSS储存桶漏洞
Swagger-UI插件
师傅们可以在Google商店下载这个插件
然后使用该插件进行接口查看,后面利用bp打下未授权,因为里面的请求有POST和GET方式
下面找到一个接口可以获取用户的密码,先保存着
再使用里面的接口可以直接找到用户root
后来利用下面的Swagger接口看日志,然后找到了该日志里面的root管理员的登录后台的url
然后利用找到的root用户和开始找到的密码进行组合,成功登录到该管理员后台了
0x6 总结
对呀Swagger的相关漏洞的分享就到这里了,主要是对呀一些常见的接口的泄露进行一个判断,然后要是有条件的师傅可以买个云服务器然后使用灯塔ARL进行批量探测和扫描,在挖企业src的时候还是蛮有帮助的哈!
文章中涉及的敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打码处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任,一旦造成后果请自行承担!