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

文章目录

  • 概述
    • 什么是接口?
  • 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.hqwc.cn/news/133156.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【算法系列 | 10】深入解析查找算法之—线性查找

序言 心若有阳光,你便会看见这个世界有那么多美好值得期待和向往。 决定开一个算法专栏,希望能帮助大家很好的了解算法。主要深入解析每个算法,从概念到示例。 我们一起努力,成为更好的自己! 今天第10讲,讲…

eclipse 某个文件不能编辑

今天打开eclipse 突然发现有一个文件不能编辑,左下角发现此文件被修改为只读, 右键此文件-->properties--> Resource -->在Attributes中,取消Read-only选项--> Apply 此时,发现eclipse 右下角 变为Writable。再次编辑…

spark中使用flatmap报错:TypeError: ‘int‘ object is not subscriptable

1、背景描述 菜鸟笔者在运行下面代码时发生了报错: from pyspark import SparkContextsc SparkContext("local", "apple1012")rdd sc.parallelize([[1, 2], 3, [7, 5, 6]])rdd1 rdd.flatMap(lambda x: x) print(rdd1.collect())报错描述如…

机器学习必修课 - 交叉验证 Cross-Validation

想象一下你有一个包含5000行数据的数据集。通常情况下,你会将约20%的数据保留作为验证数据集,即1000行。但这会在确定模型得分时引入一些随机性。也就是说,一个模型可能在一组1000行数据上表现良好,即使在另一组1000行数据上表现不…

Self-Instruct

本篇工作利用LLM的生成能力,来产生大量指令数据集(指令、输入、输出),无需人工标注数据。 其中,在对任务判别的时候,需要区分是输出优先还是输入优先: 输入优先没问题,符合人类直觉…

【小米技术分享】面试题:什么是乐观锁?你是如何设计一个乐观锁

大家好,我是小米。今天我们来聊一下面试中常见的一个问题:“什么是乐观锁?你是如何设计一个乐观锁?”作为一位热爱技术的程序员,对于这个问题,我有着自己独特的理解和实践经验。接下来,我将以通…

ESP32-WROOM-32无法进入下载模式进行程序上传的问题

结论 先说结论,ESP32-WROOM-32无法进入下载模式通过串口进行程序上传,可能是GPIO2引脚没有通过下拉电阻拉低,导致无法进入正确的启动模式。 启动模式 ESP32启动时会打印rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) 复位源rs…

discuz封面设置失败的解决办法(centos系统+windows系统)

discuz封面设置失败的解决办法(centos系统windows系统) centos系统:1、开启/var/www/html 这个目录的读写权限chmod -R 777 /var/www/html然后重启httpd:service httpd restart如果discuz论坛发布帖子,还是显示封面设置失败的话…

混淆技术研究笔记(六)如何基于yGuard实现?

确定参考 <adjust> 作为入口后&#xff0c;就需要详细了解这部分代码的逻辑。 需要看yguard源码了&#xff0c;你会如何阅读一个完全不了解的源码&#xff1f; 我通常的策略都是找一个目标&#xff0c;添加代码依赖&#xff0c;写好demo&#xff0c;debug跟踪代码看。如…

Maven系列第3篇:详解maven解决依赖问题

maven系列目标&#xff1a;从入门开始开始掌握一个高级开发所需要的maven技能。 这是maven系列第3篇。 我们先来回顾一下什么是maven&#xff1f; maven是apache软件基金会组织维护的一款自动化构件工具&#xff0c;专注服务于java平台的项目构件和依赖管理。 本文主要内容…

数据库基础篇一

MySQL数据模型 关系型数据库通过表来存储数据的数据库 SQL分类 数据库操作 进入数据库 mysql -u root -p #输入密码即可在cmd命令行窗口使用mysql 1.查询 2.创建 create database test; create database if not exists test; #如果test数据库不存在&#xff0c;则创建tes…

对比纯软开与嵌入式硬件开发谁更好呢?

对比纯软开与嵌入式硬件开发谁更好呢&#xff1f; 你的纠结和犹豫是理解的&#xff0c;职业选择确实是一个重要的决策。我明白你在嵌入式和软件开发之间犹豫不决的原因。让我给你提供一些建议&#xff0c;帮助你做出更明智的决定。最近很多小伙伴找我&#xff0c;说想要一些嵌入…