API攻防-接口安全&SOAP&OpenAPI&RESTful&分类特征导入&项目联动检测

简介: API攻防-接口安全&SOAP&OpenAPI&RESTful&分类特征导入&项目联动检测

概述

什么是接口?

接口是后端设计的一套供给第三方使用的方法

举个例子,fofa提供了第三方api接口来进行调用,使用查询语法获取资产目标资产信息


输入相关参数进行调用

API安全就是围绕着这一个接口进行的,可能存在的漏洞包括:SQL注入、身份验证、信息泄漏、XSS跨站等


1、API分类特征

SOAP - WSDL


Web Service是基于网络的、分布式的模块化组件,通过 Web 进行发布、查找和使用**。**是应用程序组件使用开放协议进行通信, 是独立的(self-contained)并可自我描述, 可通过使用UDDI来发现,可被其他应用程序使用。

交互过程

Web Services 都是放在Web服务器(如IIS)的。

WebService服务器端首先要通过一个WSDL文件来说明自己有什么服务可以对外调用,并注册到UDDI服务器,以便被人查找。

客户根据 WSDL 描述文档,使用XML封装一个 SOAP 请求消息,嵌入在一个HTTP POST请求中,发送到 Web 服务器来。

Web 服务器再把这些请求转发给 Web Services 请求处理器。

由请求处理器解析收到的 SOAP 请求,调用 Web Services,然后再生成相应的 SOAP 应答。

Web 服务器得到 SOAP 应答后,会再通过 HTTP应答的方式把信息送回到客户端。


Web services 三种基本元素:

uudl用于提供发布和查询webservice方法

wsdl是webservice服务描述语言,用于web服务说明,它是一个xml文档,用于说明一组soap消息如何访问接口

soap是简单对象访问协议,用于分布式环境的基于信息交换的同行协议,描述传递信息的格式和规范,它可以用于连接web服务和客户端之间的接口,是一个可以在不同操作系统上运行的不同语言编写的程序之间的传输通信协议,格式为xml,soap消息


OpenApi - Swagger UI

Springboot Actuator

同时也可以测一测heapdump泄漏以及相关命令执行漏洞


2、API检测流程

接口发现,遵循分类,依赖语言,V1/V2多版本等


Method:请求方法

攻击方式:OPTIONS,PUT,MOVE,DELETE

效果:上传恶意文件,修改页面等


URL:唯一资源定位符

攻击方式:猜测,遍历,跳转

效果:未授权访问等


Params:请求参数

攻击方式:构造参数,修改参数,遍历,重发

效果:爆破,越权,未授权访问,突破业务逻辑等


Authorization:认证方式

攻击方式:身份伪造,身份篡改

效果:越权,未授权访问等


Headers:请求消息头

攻击方式:拦截数据包,改Hosts,改Referer,改Content-Type等

效果:绕过身份认证,绕过Referer验证,绕过类型验证,DDOS等

Body:消息体

攻击方式:SQL注入,XML注入,反序列化等

效果:提权,突破业务逻辑,未授权访问等


3、API检测项目


Ready API


需要自行破解使用,只适用于windows,导入接口url就可以进行安全测试,漏洞类型覆盖广,就是测试时间周期较长

测试结果以报告形式展示


Postman 联动Xray

postman设置代理转发

效果如图

APIKIT Burp插件

具体使用

相关配置

进行接口fuzz测试

补一个案例


相关项目链接

https://github.com/lijiejie/swagger-exp

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


部分项目下载:

https://github.com/SmartBear/soapui

https://github.com/API-Security/APIKit

https://github.com/lijiejie/swagger-exp

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


参考

https://blog.csdn.net/comeonmao/article/details/125708415

https://blog.csdn.net/m0_52526329/article/details/132022540

相关文章
|
7天前
|
JavaScript API 开发者
GraphQL API开发入门:比RESTful更高效的数据查询方式
**GraphQL API开发入门摘要** GraphQL是一种更高效的数据查询方式,解决RESTful API的过度或不足获取数据问题。它允许客户端按需获取数据,减少网络传输,支持一次请求获取多资源。强类型和自描述特性方便了开发。文章通过一个简单的Node.js示例,展示如何使用`apollo-server-express`搭建GraphQL服务器,包括定义Schema、实现Resolver和创建服务器。通过测试,显示了GraphQL如何提供精确数据和优化查询效率。对于复杂数据需求,GraphQL是现代API设计的有效选择。
17 0
|
6天前
|
Java API 开发者
RESTful API设计与实现:Java开发者指南
RESTful API设计与实现:Java开发者指南
|
3天前
|
XML Java API
使用Java构建RESTful API的最佳实践
使用Java构建RESTful API的最佳实践
|
10天前
|
JSON API 数据格式
深入理解RESTful API设计原则与最佳实践
【6月更文挑战第26天】在现代Web开发中,RESTful API已成为构建可扩展、易于维护的后端服务的标准。本文将探讨RESTful API的核心设计原则,揭示如何通过遵循这些原则来优化API设计,确保高效和灵活的数据交互。我们将从资源定位、数据交互格式、状态传输、接口设计等方面入手,提供一系列实用的设计建议和最佳实践,帮助开发者避免常见的设计陷阱,打造高质量的后端服务。
|
11天前
|
JSON 前端开发 API
Django API开发实战:前后端分离、Restful风格与DRF序列化器详解
Django API开发实战:前后端分离、Restful风格与DRF序列化器详解
|
15天前
|
缓存 前端开发 API
深入理解RESTful API设计原则与最佳实践
【6月更文挑战第21天】在现代Web开发中,RESTful API已成为构建可伸缩、易维护网络服务的重要基石。本文将探讨RESTful API的核心设计原则,揭示其背后的哲学思想,并提供一系列最佳实践来指导开发者如何创建高效、可靠的API接口。从资源定位到HTTP方法的恰当使用,从状态管理到API版本控制,我们将一探究竟,帮助开发者避免常见的陷阱,构建出既符合标准又易于交互的后端服务。
|
17天前
|
Kubernetes 安全 Cloud Native
云上攻防-云原生篇&Kubernetes&K8s安全&API&Kubelet未授权访问&容器执行
云上攻防-云原生篇&Kubernetes&K8s安全&API&Kubelet未授权访问&容器执行
|
2天前
|
XML Java API
使用Java构建RESTful API的最佳实践
使用Java构建RESTful API的最佳实践
|
5天前
|
Java API 开发者
RESTful API设计与实现:Java开发者指南
RESTful API设计与实现:Java开发者指南
|
6天前
|
Java API Spring
Spring Boot中的RESTful API版本控制
Spring Boot中的RESTful API版本控制