API接口测试/Swgger-ui未授权访问

news2024/11/26 3:10:29

目录

API接口

接口文档

接口测试的方法

单流程

多流程

Swgger-ui未授权访问


在之间的一次面试中面试官问到了API接口测试,我回答的不好,因为自己确实不太会,后面才下去学习了,这里复习和练习一下

API接口

API(Application Programming Interface)是应用程序开发接口的缩写,意思是一些预设好的函数或方法,这些预设好的函数或方法允许第三方程序通过网络来调用数据或提供基于数据的服务。

Web API是网络应用程序接口。包含了广泛的功能,网络应用通过API接口,可以实现存储服务、消息服务、计算服务等能力,利用这些能力可以进行开发出强大功能的web应用。

API接口的类型

RESTful API:REST,Representational State Transfer的缩写,是一种使Web基础架构具有分布式特征的架构风格。RESTful API是基于REST架构风格的API,通常使用HTTP/js/ajax进行数据传输。它是使用最广泛的API类型之一。
SOAP API:全称是Simple Object Access Protocol,是UDDI、XML和SOAP的组合,它要求在高度可靠和安全的系统之间进行通信。SOAP API 使用 XML 格式请求和响应数据,并支持多种协议,包括 HTTP、HTTPS 等。对于企业级应用程序来说,SOAP API更适合处理大规模数据交换和复杂的业务流程。
GraphQL API:GraphQL是一种用于API的查询语言。与REST和SOAP不同,GraphQL不像API那样让开发者获取整个集合数据,而是根据开发者的需要返回客户端需要的数据。GraphQL API具有强大的类型系统和查询语言,使得客户端能够更精确地请求数据,而不是不必要地获取整个集合数据。

例如12306购票网站,所有的数据都在12306上,12306提供一整套接口,调用接口我们就可以获取到里面的数据

接口文档

在项目开发中,web项目的前后端分离开发,APP开发,需要由前后端工程师共同定义接口,编写接口文档,之后大家都根据这个接口文档进行开发,到项目结束前都要一直维护。

接口文档的规范

每一个接口的文档分为四部分:请求方法、URI、请求参数、返回参数

  • 请求方法:获取(GET)新增(POST)修改(PUT)删除(DELETE)

  • URI:调用这个接口需要访问的URI

  • 请求参数:字段、描述、类型、是否必填、备注

  • 返回参数:是否调用成功,返回的数据有哪些

接口测试的方法

和web测试一样,模拟客户端向服务器发送报文请求,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收应答的一个过程。

唯一的区别是接口测试需要自己构造参数,而web测试时网页会自动辅助构造参数。

单流程

业务场景无上下游依赖,这个接口可以代表整个功能,如查询个人信息

  • 构造参数 --> 发送请求 --> 校验结果

  • 常规漏洞

  • ...

多流程

接口之间有数据流转,共同形成一个完成的业务流程,如注册功能

  • 构造参数 --> 发送请求 --> 校验结果

  • 常规漏洞

  • 流程是否可以绕过,直接到达最后一步

  • ...

下面我就用Swgger-ui未授权访问漏洞来练习一下接口测试

Swgger-ui未授权访问

Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。

  • Swagger-IU的原本用意:Swagger-UI会根据开发人员在代码中的设置来自动生成API说明文档

  • 但是如果存在相关的配置缺陷就有可能攻击者可以未授权翻查Swagger接口文档,得到系统功能API接口的详细参数,再构造参数发包,通过回显获取系统大量的敏感信息。

Swgger-ui可以尝试未授权访问的目录:
 

/api
/api-docs
/api-docs/swagger.json
/api.html
/api/api-docs
/api/apidocs
/api/doc
/api/swagger
/api/swagger-ui
/api/swagger-ui.html
/api/swagger-ui.html/
/api/swagger-ui.json
/api/swagger.json
/api/swagger/
/api/swagger/ui
/api/swagger/ui/
/api/swaggerui
/api/swaggerui/
/api/v1/
/api/v1/api-docs
/api/v1/apidocs
/api/v1/swagger
/api/v1/swagger-ui
/api/v1/swagger-ui.html
/api/v1/swagger-ui.json
/api/v1/swagger.json
/api/v1/swagger/
/api/v2
/api/v2/api-docs
/api/v2/apidocs
/api/v2/swagger
/api/v2/swagger-ui
/api/v2/swagger-ui.html
/api/v2/swagger-ui.json
/api/v2/swagger.json
/api/v2/swagger/
/api/v3
/apidocs
/apidocs/swagger.json
/doc.html
/docs/
/druid/index.html
/graphql
/libs/swaggerui
/libs/swaggerui/
/spring-security-oauth-resource/swagger-ui.html
/spring-security-rest/api/swagger-ui.html
/sw/swagger-ui.html
/swagger
/swagger-resources
/swagger-resources/configuration/security
/swagger-resources/configuration/security/
/swagger-resources/configuration/ui
/swagger-resources/configuration/ui/
/swagger-ui
/swagger-ui.html
/swagger-ui.html#/api-memory-controller
/swagger-ui.html/
/swagger-ui.json
/swagger-ui/swagger.json
/swagger.json
/swagger.yml
/swagger/
/swagger/index.html
/swagger/static/index.html
/swagger/swagger-ui.html
/swagger/ui/
/Swagger/ui/index
/swagger/ui/index
/swagger/v1/swagger.json
/swagger/v2/swagger.json
/template/swagger-ui.html
/user/swagger-ui.html
/user/swagger-ui.html/
/v1.x/swagger-ui.html
/v1/api-docs
/v1/swagger.json
/v2/api-docs
/v3/api-docs

使用dirsearch扫描发现了一个页面:

访问可以看到是Swgger-ui的页面:

下面我们就可以根据页面提供的api接口文档进行api接口测试了

例如下面这样的一个页面:

这里的接口写的是所有煤矿信息,那么我们就可以尝试点击Try it Out尝试访问一下:

可以看到访问到了所有的煤矿的信息,那么设想一下,如果有一个查看用户账号信息的接口我们可以未授权访问是不是就可以获取到所有用户的敏感信息了

账号密码都有了,那么下一步就是快乐的登录系统了

参考文章:

什么是API接口?API接口的类型,如何调用API接口?-CSDN博客

Swagger未授权访问漏洞-腾讯云开发者社区-腾讯云

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1888290.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DevOps:开发与运维的无缝融合

目录 前言1. DevOps的起源与概念1.1 DevOps的起源1.2 DevOps的定义 2. DevOps的核心实践2.1 持续集成2.2 持续交付2.3 自动化 3. DevOps工具链3.1 版本控制系统3.2 持续集成工具3.3 配置管理工具3.4 容器化与编排工具3.5 监控和日志工具 4. DevOps的实际应用4.1 案例分析&#…

【技巧分享】对接多平台:高效接入淘宝、抖音、京东、拼多多等电商平台API的实战策略

当电商商家想要自研电商管理系统,或是线下ERP厂商想要开发电商业务管理功能,需要对接电商平台API,但电商平台众多,各类平台API接口也需要花费大量的时间和精力去对接,如何快速接入多个电商平台API呢?点三来…

FormMaking表单设计器V3.8发布,数据表格上线,支持多选、多级表头、列模板自定义、操作列、分页等设置

介绍 FormMaking 是基于Vue的可视化表单设计器,赋能企业实现可视化低代码开发模式;帮助开发者从传统枯燥的表单代码中解放出来,更多关注业务,快速提高效率,节省研发成本。 目前已经在OA系统、考试系统、报表系统、流程…

docker push 推送镜像到阿里云仓库

1.登陆阿里云 镜像服务,跟着指引操作就行 创建个人实例,创建命名空间、镜像仓库,绑定代码源头 2.将镜像推送到Registry $ docker login --username*** registry.cn-beijing.aliyuncs.com $ docker tag [ImageId] registry.cn-beijing.aliy…

AI商品图生成定制技术公司

AI绘画模型训练、定制服务公司案例分析— 触站AI,塑造智能设计新纪元 第一:触站AI的创新之路 触站AI的崛起标志着AI技术在艺术与设计领域应用的一个新高度。作为一家专注于企业AI图像领域的技术解决方案服务公司,触站AI以其前沿的技术和定制…

数字化精益生产系统--SRM供应商关系管理

SRM供应商关系管理,全称为Supplier Relationship Management(供应商关系管理)系统,是一种专门用于管理采购供应链和供应商关系的软件系统。该系统通过集成各个环节的采购活动,帮助企业实现采购流程的自动化、标准化和优…

AI智能体|AI打工我躺平!使用扣子Coze智能体自动生成和发布文章到微信公众号(一)

大家好,我是无界生长,国内最大AI付费社群“AI破局俱乐部”初创合伙人。这是我的第 44 篇原创文章——《AI智能体|AI打工我躺平!使用扣子Coze智能体自动生成和发布文章到微信公众号(一)》 AI智能体&#xf…

课程设计——基于FPGA的双向移位寄存器

基于FPGA的双向移位寄存器 摘 要 本文使用verilog HDL语言设计双向移位寄存器,使电路受外部信号控制,实现数字信号的双向移位等功能,其电路设计模块主要分为三个部分,分别为接受判断控制信号的组合逻辑电路部分、实现存储、运算…

系统安全保证措施方案(word原件)

一、身份鉴别 二、访问控制 三、通信完整性、保密性 四、抗抵赖 五、数据完整性 六、数据保密性 七、应用安全支撑系统设计 软件资料获取及全资料学习获取:本文末个人名片或进主页。

2024年江西省研究生数学建模竞赛C题聚变反应堆设计论文和代码分析

经过不懈的努力,2024年江西省研究生数学建模竞赛C题聚变反应堆设计论文和代码已完成,代码为C题全部问题的代码,论文包括摘要、问题重述、问题分析、模型假设、符号说明、模型的建立和求解(问题1模型的建立和求解、问题2模型的建立…

金融科技在反洗钱领域的创新应用

随着金融市场的不断发展和全球化趋势的加速,洗钱活动日益猖獗,给金融机构和社会经济安全带来了严重威胁。为了有效应对这一挑战,金融科技在反洗钱领域的应用逐渐崭露头角,为打击洗钱活动提供了强有力的技术支持。本文将从多个角度…

UG NX二次开发(C#)-根据草图创建拉伸特征(UFun+NXOpen)

文章目录 1、前言2、在UG NX中创建草图,然后创建拉伸特征3、基于UFun函数的实现4、基于NXOpen的实现代码1、前言 UG NX是基于特征的三维建模软件,其中拉伸特征是一个很重要的特征,有读者问如何根据草图创建拉伸特征,我在这篇博客中讲述一下草图创建拉伸特征的UG NX二次开发…

学习springAOP

第三章 Spring AOP 第一节 AOP 简介 1. 概念 AOP全称为Aspect Oriented Programming,表示面向切面编程。何为切面呢? 由此可以得出,切面是一种将那些与业务无关,但业务模块都需要使用的功能封装起来的技术。这样便于减少系统的…

Linux 64位系统运行32位程序

1、原理分析 Linux 64位系统运行32位程序的原理主要涉及到系统架构的兼容性、库文件的支持以及特定的运行环境设置。 1.1 系统架构兼容性 x64与x86的区别: x86是Intel于1985年推出的32位指令集架构,后被AMD、VIA等厂商广泛采用。x64(也称为…

AI需求强劲推动韩国六月芯片出口创历史新高

据路透社7月1日报道,韩国产业通商资源部最新数据显示,韩国出口连续第九个月增长,六月份海外对芯片的持续且增强的需求将芯片出口额推至历史高位。这一出口增长势头同时带动韩国制造业采购经理指数(PMI)攀升至两年多以来…

SpringBoot实战(二十八)集成 Collabora Online 实现在线编辑

目录 一、什么是 Collabora Online?二、Docker 下载并启动 CODE2.1 拉取镜像2.2 启动镜像2.3 访问界面2.4 补充:nextcloud 的镜像启动三、SpringBoot 实现 WOPI 服务3.1 什么是WOPI?3.2 Spring Boot 简单实现3.3 另一种实现方式3.4 总结四、补充:coolwsd.xml 核心配置介绍c…

类型“{}”上不存在属性“xxxx”。ts(2339)

解决:类型“{}”上不存在属性“xxxx”和非类型化函数调用不能接受类型参数等问题。 问题发现 今天一个学生,发我一张图(如下)。 他从远端拉取到本地(自家电脑)后打开的代码视图,一大堆抛红。问…

s5.日志服务

日志服务 1. rsyslog 系统日志服务2.常见日志文件3. 启用网络日志服务4. 利用 MySQL 存储日志信息5. 日志管理工具 journalctl6. Logrotate 日志转储 1. rsyslog 系统日志服务 rsyslog是CentOS 6 以后版本的系统管理服务.它提供了高性能,出色的安全性和模块化设计。…

vue为啥监听不了@scroll

哈喽 大家好 我在vue中写了一个滚动scroll监听事件 然后滚动鼠标 发现进不来我的方法断点 原因: 事件绑定错误:确保你使用scroll正确绑定到了可滚动容器上。 事件冒泡:滚动事件可能被封装在某些组件内部,导致不会冒泡到父元素上…

背景图的动效,非常的炫酷,非一般的感觉。

我们都知道在一些展示型项目中,背景图加上动效后,可以立马让整个设计档次提升了,这次带来了一批背景图的动效图,大家看一下。