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

news/2024/12/2 19:35:17/

文章目录

  • 概述
    • 什么是接口?
  • 1、API分类特征
    • SOAP - WSDL
      • Web services 三种基本元素:
    • OpenApi - Swagger UI
    • Springboot Actuator
  • 2、API检测流程
    • Method:请求方法
    • URL:唯一资源定位符
    • Params:请求参数
    • Authorization:认证方式
    • Headers:请求消息头
  • 3、API检测项目
    • Ready API
    • Postman 联动Xray
    • APIKIT Burp插件
    • 补一个案例
    • vapi靶场搭建
    • 相关项目链接
  • 参考

概述

什么是接口?

接口是后端设计的一套供给第三方使用的方法
举个例子,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测试
在这里插入图片描述

补一个案例

在这里插入图片描述
在这里插入图片描述

vapi靶场搭建

靶场搭建
搭建完成后
在这里插入图片描述在这里插入图片描述后面整体靶场测试过程留在下一篇blog中……

相关项目链接

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://github.com/roottusk/vapi
https://github.com/API-Security/APISandbox
https://github.com/arainho/awesome-api-security

参考

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


http://www.ppmy.cn/news/1149908.html

相关文章

【ARM Coresight 系列文章 4.1 - ARM Coresight AHB-AP 使用详细介绍】

文章目录 AHB-AP 介绍AHB-AP 的连接AHB-AP 介绍 AHB-AP位于Cortex-M 的存储器系统和调试接口模块(SWJ-DP/SW_DP)之间,充当一个总线桥的角色,它把串行线/SWJ 接口的命令转换成 AHB 数据传送。对于大多数基本的在调试主机和Cortex-M系统之间的数据传输,只需要使用AHB-AP中的…

SpringCloud之Feign

参考:SpringCloud之Feign使用和拓展-CSDN博客 在使用Spring Cloud开发微服务应用时,各个服务提供者都是以HTTP接口的形式对外提供服务,因此在服务消费者调用服务提供者时,底层通过HTTP Client的方式访问。当然我们可以使用JDK原生…

VS Code调试使用标准输入功能的go程序的问题

默认情况下调试器dlv使用调试控制台来调试程序,此时不能执行具有标准输入功能的函数调用,如 _, err : io.Copy(dst, os.Stdin); 解决方法是修改当前项目的launch.json文件,如下 {// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性…

基本微信小程序的购物商城系统

项目介绍 随着互联网的趋势的到来,各行各业都在考虑利用互联网将自己的信息推广出去,最好方式就是建立自己的平台信息,并对其进行管理,随着现在智能手机的普及,人们对于智能手机里面的应用购物平台小程序也在不断的使…

用TRIZ创新方法理论指导产品研发学习笔记

事物的矛盾法则 事物的矛盾法则,也称为辩证法的矛盾法则,是马克思主义哲学中的一个基本概念,用于描述事物内部矛盾的本质和发展规律。这个法则强调,事物内部存在着矛盾,而矛盾是事物发展的动力和源泉。 TRIZ理论解决…

vue自定义防抖指令

main.js中 Vue.directive(throttle, {bind: (el, binding) > {let throttleTime binding.value; // 防抖时间if (!throttleTime) { // 用户若不设置防抖时间,则默认2sthrottleTime 2000;}let cbFun;el.addEventListener(click, event > {if (!cbFun) { // …

2023-10-10 mysql-{mysql_rm_db}-失败后回滚-记录

摘要: 2023-10-10 mysql-{mysql_rm_db}-失败后回滚-记录 mysql_rm_db 完整函数代码: /**Drop all tables, routines and events in a database and the database itself.@param thd Thread handle@param db Database name in the case given by userIts alr…

Tmux教学【有图有代码】

Tmux教学【有图有代码】 0、前言1、Tmux基本概念1.1 安装 2、Tmux使用2.1 session操作2.2 window操作2.3 pane操作2.4 其他操作 3、日常中Tmux的工作流 0、前言 想必同学们在跑代码时也许会存在这样一个问题: 本地在连接远程服务器跑代码的时候,本地ssh窗…