API接口测试简介

news2024/9/24 13:25:47

今天继续给大家介绍渗透测试相关知识,本文主要内容是API接口测试简介。

免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!

一、API接口介绍

常见的API接口如下所示:

(一)RPC

RPC,即Remote Procedure Call,远程过程调用的简称,是一个计算机通信协议。该协议允许一台计算机的程序调用另一台计算机的子程序。
RPC一般使用TCP协议进行通信,通常不涉及HTTP协议。

我们后面讲到的Web Service和Restful API都可以看作是RPC的一个子集。

(二)Web Service

Web Service也称为Web服务,是一种跨编程语言和操作系统平台的远程调用技术。Web Service采用标准的SOAP协议进行数据传输,采用WSDL作为描述语言。
WSDL,Web Service Description Language,网络服务描述语言,是一门基于XML的语言,用于描述Web Service以及如何对它们进行访问。
SOAP,Simple Object Access Protocol,简单对象访问协议,是一种交换数据的协议规范,是一种轻量的、简单的、基于XML的协议,能够在Web上交换结构化的和固化的信息。
Web Service是一种较为老旧的重量级接口技术,目前大部分应用在金融机构和老的应用中。

(三)Restful API

Restful API,即符合Rest风格的API,传递数据主要采用2种形式:XML和JSON,目前XML格式比较少见,JSON格式比较常见。

(四)MVC

MVC是Web和APP应用程序开发的流行框架。MVC即Model(模型)、View(视图)和Controller(控制器),这三个模块作用如下所示:
视图:管理展示到屏幕上的图形和文字输出。
控制器:翻译用户的输入,并依照用户的输入操作模型和视图。
模型:管理应用的行为和数据,响应来自视图的数据请求和来自控制器的指令。
这种模式和架构的应用也导致了API接口的大规模应用。

二、API接口测试工具和方法

那么我们应该如何测试这些API接口类型的漏洞呢?在这里介绍两种方法:

(一)Web Service测试

利用搜索引擎语法,查找带有wsdl关键字的网页,例如:
inurl:jws?wsdl
inurl:exe?wsdl
inurl:dll?wsdl
inurl:php?wsdl
inurl:aspx?wsdl
filetype:exe
filetype:dll
filetype:php
等等。

(二)利用soap工具进行测试

其次,我们还可以利用soap工具进行测试,soap UI可以进行渗透测试流程的发起,通信报文的解析以及通信报文集合payload后重新组装等功能。
soap工具代码托管在Github平台上,URL为:https://github.com/SmartBear/soapui,其页面如下所示:
在这里插入图片描述

三、常见API接口漏洞

API接口的常见漏洞有以下6种:
1、逻辑越权漏洞
逻辑越权指的是在API接口测试时,可以猜解不同参数的含义,通过修改这些参数完成越权的操作。
2、输入控制漏洞
输入控制漏洞主要包括XXE、Restful API的注入漏洞、XSS、溢出以及特殊字符串的处理等等。
3、接口滥用
接口滥用常常是因为没有请求频率限制导致的各种遍历和爆破,可能导致短信验证码爆破、登录爆破、手机号遍历、身份证遍历等。
4、信息泄露
信息泄露指的是包括越权导致的信息泄露以及畸形请求导致的信息泄露。
5、HTTP响应头控制
我们可以在发送HTTP数据包时,删除部分信息,例如:

  • 发送X-Content-Type-Options:nosniff
  • 发送X-Frame-Options:deny
  • 发送Content-Security-By:default-src ‘none’
  • 删除指纹头X-Powered-By、Server、X-AspNet-Version等
  • 在响应种强制使用Content-type

6、服务端配置漏洞
如服务器版本信息泄露以及服务端程序本身存在的漏洞等等。

四、API接口安全加固

面对API接口的诸多安全问题,API接口安全加固通常采用以下措施:
1、认证和授权控制
2、用户输入控制
3、接口请求频率的限制
4、输出控制
5、添加安全响应头参数
参考:https://xz.aliyun.com/t/2412
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

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

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

相关文章

Hadoop高手之路8-Flume日志采集

文章目录Hadoop高手之路8-Flume日志采集一、Flume概述1. Flume简介2. Flume运行机制3. Flume日志采集系统结构图二、Flume的搭建1. 下载2. 上传3. 解压4. 配置环境变量5. 配置flume三、Flume入门使用1. 配置数据采集方案1) 查看官网2) 案例需求3) 创建新的配置文件4) 复制官网的…

公司业财一体化详解

一、传统财务会计如何手工做账1.没有财务系统(软件)时公司会计用手工记账,流程包括:建立总账;首先建立账簿,登记会计账簿时,应当将会计凭证日期、编号、业务内容摘要、金额和其他有关资料逐项计…

GAMES101作业5及框架梳理

闲言碎语 emmm,上一次写还是2022年4月份的事情了,真的有点恍如隔世,4月到9月主要是在准备保研的事情,然后10月到12月基本上是在适应实习生活(没错,保完研之后因为种种原因就直接开始实习了,害&…

[Vue]Vue3学习笔记(尚硅谷)

文章目录🥽 创建Vue3项目🌊 vue-cli🌊 vite🥽 项目结构🥽 Vue3开发者工具的安装🥽 初识setup🥽 ref 函数🥽 reactive函数🥽Vue3.0中的响应式原理🌊 vue2.x的响…

微服务架构解决方案介绍

1、微服务架构 目前微服务是非常火的架构或者说概念,也是在构建大型互联网项目时采用的架构方式。 1.1 单体架构 在软件设计中,经常提及和使用经典的3层模型,即表示层、业务逻辑层和数据访问层。 表示层:用于直接和用户交互&a…

内网穿透(mac,window,linux通用)1分钟实现外网访问电脑本地服务器

我们在做开发时,不想购买服务器,只想搭建我们本地的服务器,我们搭建的本地服务器只能供我们自己电脑的浏览器访问,或者处于同一个wifi下的手机访问,但是我们如果想让别人访问到我们的本地服务器,尤其做微信…

共享模型之管程(三)

1.Synchronized优化原理 1.1.轻量级锁(Lock Record) 1.1.1.简介 1>.轻量级锁的使用场景:如果一个对象虽然有多个线程访问,但是多个线程访问的时间是错开的(即没有竞争),那么可以使用轻量级锁来进行优化; 2>.轻量级锁对使用者是透明的,即语法仍然是"synchronized…

docker减少构建镜像大小

目录 1.原镜像大小 1.1 Dockerfile文件 1.2 hello文件 1.3 进入文件夹myprojecthello打包镜像 1.4查看打包的镜像 2.通过拆分文件夹减少镜像大小 2.1 创建两个文件夹 2.2 移动文件 2.3 打包镜像 3. 通过 .dockerignore 文件的方式 3.1 创建 world.txt文件 3.2 创建 …

【Spring(三)】DI入门案例(XML版)

文章目录前言DI入门案例总结前言 前面我们已经演示了IOC入门案例的介绍,里边还有一些东西是耦合的,接下来我们就来学习DI的入门案例来解决这个问题💪💪。 DI入门案例 我们先来想一下,你做DI这个首先得先让IOC容器管着b…

STM32 TIM PWM中阶操作:互补PWM输出

STM32 TIM PWM中阶操作详解:互补PWM输出 STM32 TIM可以输出管脚PWM信号适合多种场景使用,功能包括单线/非互补PWM输出,双线/互补PWM输出,以及死区时间和刹车控制等。 实际上,因为早期IP Core的缺陷,早期的…

万应低代码12月重点更新内容速递

速览版 详情版 低代码开发效率升级 01 动作流 动作编排过程中涉及到多条件判断时使用,即:满足某条件可执行一条分支,不满足则执行“其他”分支。 【使用场景】 ● 以“个人所得税计算”场景为例,不同收入水平的人输入不同的收…

人工智能对联生成 API 数据接口

人工智能对联生成 API 数据接口 基于百万数据训练,AI 训练与应答,多结果返回。 1. 产品功能 AI 基于百万历史对联数据训练应答模型;机器学习持续训练学习;一个上联可返回多个下联应答;毫秒级响应性能;数据…

关键字:final

文章目录一、final修饰类修饰方法修饰变量修饰属性修饰局部变量static final练习每日一考一、final final:最终的 final可以修饰的结构:类、方法、变量 修饰类 此类不能被其他类所继承 修饰方法 此方法不可以被重写 修饰变量 此时的“变量”就称为…

ACL论文总结

「博士毕业一年,我拿下 ACL Best Paper」 在不久前结束的自然语言处理NLP,领域顶级学术会议ACL2021上,字节跳动AL lab研究院许晶晶,完成了他的演讲。 在全球顶会做完分享后,许晶晶感到很欣慰,没想到&#…

自然语言处理重点 第11章 机器阅读理解 复习

机器阅读理解复习机器阅读理解概述机器阅读(MRC)理解与问答系统(QA)的区别:本章内容:MRC 任务分类:完形填空形式(cloze-style)选项形式片段抽取形式(span extraction)文本生成形式(free-answer/…

uCharts柱状图横向排列及不同条件下得数据颜色不同,雷达图的使用及各个参数的配置讲解

一:雷达图 1,建立一个盒子,内部存放uCharts图表 在data数据中return内部配置如下数据: chartData: {},//您可以通过修改 config-ucharts.js 文件中下标为 [radar] 的节点来配置全局默认参数,如都是默认参数,此处可以不传 opts 。实际应用过程中 opts 只需传入与全局默认…

【台式机DIY】我的第一台台式机电脑配置清单

文章目录[toc]【第一台台式机】一、电脑配置清单【电脑小白我科普】一.CPU1.选购:主流品牌2.选购:如何选择3.参数:接口4.参数:频率5.参数:核心和线程6.参数:功耗7.参数:缓存二.主板1.选购&#…

Django开发员工管理系统(Part I)

文章目录1. 准备工作1.1 创建django项目1.2 创建app1.3 配置settings.py文件,完成app注册2. 设计数据库表结构3. 在MySQL中生成表3.1 创建数据库3.2 修改配置文件,连接MySQL数据库3.3 通过django命令生成数据库表4. 编写部门列表4.1 (前段页面…

报表开发工具FastReport.NET的十大常见问题及解决方法(二)

Fastreport是目前世界上主流的图表控件,具有超高性价比,以更具成本优势的价格,便能提供功能齐全的报表解决方案,连续三年蝉联全球文档创建组件和库的“ Top 50 Publishers”奖。慧都科技是Fast Reports在中国区十余年的友好合作伙…

php宝塔搭建部署实战海洋cms视频内容管理系统源码

大家好啊,我是测评君,欢迎来到web测评。 本期给大家带来一套php开发的海洋cms视频内容管理系统源码,感兴趣的朋友可以自行下载学习。 技术架构 PHP7.2 nginx mysql5.7 JS CSS HTMLcnetos7以上 宝塔面板 文字搭建教程 下载源码&#…