API攻防-接口类型&测试方法&端点提取&暴漏攻击&枚举规则&RESTful风格&GraphQL语法

知识点:

API攻防-类型利用-RESTful&GraphQL

API接口类型:

1、RESTful API(Representational State Transfer):RESTful API是一种基于HTTP协议的API设计风格,它使用HTTP方法(例如:GET、POST、PUT、DELETE、PATCH)来对资源进行操作并通过URL来唯一标识资源

2、SOAP API(Simple Object Access Protocol):SOAP API是一种基于XML的通信协议,它使用SOAP消息格式进行数据交换,SOAP API通常使用WSDL(Web Services Description Language)描述接口,支持复杂的数据类型和协议扩展

3、GraphQL API(Graph Query Language):GraphQL API是一种用于数据查询和操作的API查询语言,它允许客户端定义需要返回的数据结构,从而减少不必要的数据传输和多次请求

4、gRPC API:gRPC是一种高性能、开源的远程过程调用(RPC)框架,它支持多种编程语言并使用Protocol Buffers进行数据序列化和通信

5、WebSocket API:WebSocket API提供了一种全双工通信的机制,使得服务器和客户端可以实时地进行双向数据传输,适用于实时通信和推送场景

6、JSON-RPC API:JSON-RPC是一种轻量级的远程过程调用(RPC)协议,基于JSON格式进行数据交换,支持各种编程语言和平台

7、OAuth API:OAuth是一种开放标准的授权协议,用于用户授权第三方应用程序访问受保护的资源,OAuth API提供了一组用于身份验证和授权的接口

8、OpenAPI/Swagger API:OpenAPI(以前称为Swagger)是一种用于设计、构建和文档化API的规范和工具集。OpenAPI/Swagger API提供了一种描述API接口和操作的标准方式

现在网站常用的就是这几种API接口:RESTful、SOAP、GraphQL、OAuth、OpenAPI/Swagger

API检测流程

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

接口发现:
JS等中提取,枚举爆破,响应提示等

Method:请求方法

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

文章参考:https://blog.csdn.net/weixin_42672802/article/details/136884270

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

URL:唯一资源定位符

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

效果:未授权访问等

Params:请求参数

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

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

Authorization:认证方式

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

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

Headers:请求消息头

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

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

Body:消息体

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

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

演示案例-API攻防-类型利用-RESTful&GraphQL

一、RESTful风格的测试

1、API接口JS中URL泄露

bash 复制代码
fetch(
    `${form.action}/${encodeURIComponent(username)}`,
    {
method: 'PATCH',
body: JSON.stringify({ 'email': email })
    }
)










2、API接口利用提交方法

bash 复制代码
POST /api/products/1/price
PATCH /api/products/1/price
Content-Type: application/json
{
"price":1
}







可以理解为GET是获取商品的信息,PATCH就是设置商品的价格。

3、API接口利用泄露参数

bash 复制代码
POST /api/checkout
{    
    "chosen_discount":{ //被选择(产品)的折扣
        "percentage":0 //百分比
},
    "chosen_products":[ //被选择的产品
        {
            "product_id":"1", //产品id
            "name":
            "Lightweight \"l33t\" Leather Jacket
",
            "quantity":1, //数量
            "item_price":133700 //价格
                    }
            ]








二、GraphQL风格的测试


GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。

可以把它理解为类似thinkphp框架作用。

参考:https://mp.weixin.qq.com/s/gpm8w0HHW5wNKQLq4AtGyg

参考:blog.csdn.net/qq_61812944/category_12417979.html

参考:https://graphql.cn/learn/introspection/

RESTful差异:
RESTful:请求什么就换一个端点和参数。
GraphQL:固定的端点里面的东西改变。

利用核心:除常规测试思路外,语法是重点。

解决1:目标使用GraphQL API技术判断

BP插件URL特征分析,提交的参数数据特征

测试插件:BurpSuite应用市场InQL

解决2:目标使用GraphQL API初级安全测试技术

见下列实验

解决3:目标使用GraphQL API中高级安全测试技术(下节课)

1、实验室:访问私人GraphQL数据










2、实验室:访问暴漏GraphQL字段








3、实验室:访问隐藏GraphQL端点

相关推荐
handsomestWei7 小时前
Docker引擎API接入配置
运维·http·docker·容器·api
weixin_4080996710 小时前
【完整教程】天诺脚本如何调用 OCR 文字识别 API?自动识别屏幕文字实战(附代码)
前端·人工智能·后端·ocr·api·天诺脚本·自动识别文字脚本
2501_9216494913 小时前
2026个人量化交易免费数据API接入:从选型到实操
经验分享·python·金融·api·个人开发·量化交易
chaofan98019 小时前
2026大模型应用架构选型:如何通过API聚合平台构建企业级AI服务?
人工智能·架构·自动化·api
ai大模型中转api测评1 天前
告别文字堆砌:Gemini 交互 API 赋能垂直领域,开发者如何重构用户认知?
人工智能·重构·交互·api
麦聪聊数据1 天前
企业数据流通与敏捷API交付实战(六):内部API门户与自助分发机制
数据库·低代码·restful·etl
chaofan9802 天前
从文字响应到动态沙盒:深度解析 Gemini 交互模拟 API 的技术实现与集成
人工智能·交互·api
weixin_408099672 天前
OCR 识别率提升实战:模糊 / 倾斜 / 反光图片全套优化方案(附 Python / Java / PHP 代码)
图像处理·人工智能·后端·python·ocr·api·抠图
weixin_408099672 天前
【实战教程】懒人精灵如何实现 OCR 文字识别?接口调用完整指南(附可运行示例)
java·前端·人工智能·后端·ocr·api·懒人精灵
weixin_408099672 天前
【保姆级教程】易语言调用 OCR 文字识别 API(从0到1完整实战 + 示例源码)
图像处理·人工智能·后端·ocr·api·文字识别·易语言