没有SwaggerUI的Swag怎么破?

admin 2023年6月9日11:41:33评论32 views字数 1142阅读3分48秒阅读模式

声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。


背景介绍:


API 配置错误是指应用程序编程接口 (API) 的设置不当或不安全,这可能包括弱身份验证、缺乏输入验证或不正确的访问控制等问题。

API 配置错误可能使攻击者能够未经授权访问敏感数据或代表用户执行操作,这可能导致敏感数据泄露、系统受损和其它安全问题。

切入正题:

在对某个私邀项目测试时,通过访问其 Web 页面的 SwaggerUI ,发现给出一个错误提示,“Unauthorized, Full authentication is required to access”,但 WWW-Authenticate 标头在响应中的起始值 Bearer 却引起了我的特别注意。

没有SwaggerUI的Swag怎么破?


于是我开始挖掘token,但没有找到任何token,于是我开始在 cookie、localstorage 和 sessionstorage 中寻找token,并发现授权token存储在应用程序localstorage中,于是复制该token并在请求中使用,然后将 {serviceIdentifier} 更改为 1 ,我便能够枚举包含员工详细信息的用户列表,如姓名、员工 ID、电子邮件、部门名称以及电话号码。

什么是SwaggerUI?


Swagger UI 是一个用户友好的界面,用于显示和测试使用 OpenAPI 规范定义的 RESTful API 的端点,它允许开发人员轻松地与 API 交互,并以简单、直观的格式查看各种请求和响应。

我是如何发现该漏洞的?


1、访问SwaggerUI,并拦截该请求,然后将该请求发送至repeater

2、通过在页面中点击右键,选择Inspect > Storage > LocalStorage,在LocalStorage中搜索授权Token

没有SwaggerUI的Swag怎么破?

没有SwaggerUI的Swag怎么破?

3、从LocalStorage中复制授权Token,并将其保存在文件中以便后续使用

4、在请求中添加 Authorization 标头,初始值为 Bearer,后面跟上授权Token

没有SwaggerUI的Swag怎么破?

5、点击发送,获得用户详细信息

没有SwaggerUI的Swag怎么破?

6、修改{serviceIdentifier},实现用户信息遍历


没有SwaggerUI的Swag怎么破?

什么原因导致的?

应该是以下两个原因导致了该漏洞:

  1. 1、可被访问的 SwaggerUI 端点


  2. 2、过于宽松的授权Token


漏洞危害:

任何用户都可以轻松访问本该被限制访问的所有用户信息

CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:L

Score - 7.2 High

缓解措施:


1、限制 SwaggerUI 的访问

2、为生成的授权 Token 授予适当的权限

你学废了吗?

====正文结束====

原文始发于微信公众号(骨哥说事):没有SwaggerUI的Swag怎么破?

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年6月9日11:41:33
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   没有SwaggerUI的Swag怎么破?http://cn-sec.com/archives/1790512.html

发表评论

匿名网友 填写信息