API接口安全

API介绍

API(应用程序编程接口)是一个计算接口,限定了多个软件中介之间的相互作用。定义了可以进行的调用或请求的类型,如何进行调用,应使用的数据格式,遵循的约定等。具备扩展机制,以便用户可以通过各种方式不同程度扩展现有功能。API可以完全针对组件定制,也可以基于行业标准进行设计以确保操作的互通性。通过信息隐藏,API支持模块化编程,允许用户独立使用界面。

使用API的目的

在构建应用程序时,API通过抽象化底层实现以及仅公开开发人员需要的对象或函数来简化编程步骤。电子邮件客户端的图形界面可能会为用户提供执行提取和突出显示新电子邮件所有步骤的按钮,而用于文件输入/输出的API会为开发人员提供将文件从一个位置复制到另一个位置的功能,而无需要求开发人员了解幕后发生的文件系统操作。

接口类型

1.HTTP类接口-测评
2.RPC类接口-测评
3.Web Service类-测评

内容点:

SOAP(Simple Object Access Protocol)简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。SOAP不是Web Service的专有协议。
SOAP使用HTTP来发送XML格式的数据,可以简单理解为:SOAP = HTTP +XML

REST(Representational State Transfer)即表述性状态传递,在三种主流的Web服务实现方案中,因为REST模式的Web服务与复杂的SOAP和XML-RPC对比来讲明显的更加简洁,越来越多的Web服务开始采用REST风格设计和实现。例如,Amazon.com提供接近REST风格的Web服务进行图书查找;雅虎提供的Web服务也是REST风格的。

WSDL(Web Services Description Language)即网络服务描述语言,用于描述Web服务的公共接口。这是一个基于XML的关于如何与Web服务通讯和使用的服务描述;也就是描述与目录中列出的Web服务进行交互时需要绑定的协议和信息格式。通常采用抽象语言描述该服务支持的操作和信息,使用的时候再将实际的网络协议和信息格式绑定给该服务。

读懂数据包

接口数据包:

Method:请求方法
攻击方式:OPTIONS,PUT,MOVE,DELETE
效果:上传恶意文件,修改页面等
URL:唯一资源定位符
攻击方式:猜测,遍历,跳转
效果:未授权访问等
Params:请求参数
攻击方式:构造参数,修改参数,遍历,重发
效果:爆破,越权,未授权访问,突破业务逻辑等
Authorization:认证方式
攻击方式:身份伪造,身份篡改
效果:越权,未授权访问等
Headers:请求消息头
攻击方式:拦截数据包,改Hosts,改Referer,改Content-Type等
效果:绕过身份认证,绕过Referer验证,绕过类型验证,DDOS等
Body:消息体
攻击方式:SQL注入,XML注入,反序列化等
效果:提权,突破业务逻辑,未授权访问等

测试流程

WebService类-Wsdl&SoapUI
探针:?wsdl

在接口上加?wsdl进行测试然后丢soapUI里面进行连接测试一下,然后开始查询数据

SOAP类-Swagger&SoapUI&EXP

SOAP严重依赖XML,并且与模式一起定义了一个非常强类型的消息传递框架。该服务提供的每个操作以及该操作的请求和响应的XML结构都被明确定义。每个输入参数都类似地定义并绑定到类型:例如,整数,字符串或其他复杂对象。 所有这些都以WSDL – Web service描述中的语言进行了编码。WSDL通常被解释为服务的提供者和使用者之间的契约。用编程术语可以将WSDL视为Web service的方法签名。

测试方法介绍

HTTP类-Webpack&PackerFuzzer

针对Webpack等前端打包工具所构建的网站进行安全、高效检测的扫描

如果网站使用的API是Webpack或者其他的打包器可以使用这个项目进行测试

靶场部署

DVWS

不安全 API/Web 服务

此靶场包含API/Web 服务漏洞:

不安全的直接对象引用
水平访问控制问题
垂直访问控制问题
批量分配
跨站脚本
NoSQL 注入
服务器端请求伪造
JSON Web 令牌 (JWT) 密钥暴力破解
信息披露
隐藏的 API 功能暴露
跨域资源共享错误配置
JSON劫持
SQL 注入
XML 外部实体注入 (XXE)
命令注入
XPATH 注入
XML-RPC 用户枚举
打开重定向
路径遍历
不安全的反序列化
敏感数据暴露
GraphQL 访问控制问题
启用 GraphQL 内省
GraphQL 任意文件写入
GraphQL 批处理蛮力

在git上有部署的方法,但是通关靶场的地址没有找到,可能是因为这玩意使用的比较少。搜索出来大部分都是DVWA的手册

posted @ 2022-06-10 00:35  阿力先生  阅读(224)  评论(0)    收藏  举报