【API渗透测试】第一步:侦查
2023-11-24 11:40:25 0 举报
AI智能生成
在API渗透测试的侦查阶段,我们将首先对目标系统进行详细的分析和了解。这包括收集目标系统的公开信息,如域名、IP地址、开放端口等。同时,我们也会尝试找到可能存在的安全漏洞,如过时的软件版本、不安全的网络协议等。此外,我们还会研究目标系统的API接口,了解其工作原理和可能的安全风险。这一阶段的目标是建立对目标系统的全面认识,为后续的渗透测试打下坚实的基础。
作者其他创作
大纲/内容
枚举
RESTful API 枚举
资源枚举
e.g: /api/{{products}}/122/edit
对象枚举
e.g: enumerate object identifiers: /api/users/{{1}}/edit
GraphQL API 枚举
枚举自省查询
PayloadAllTheThings
https://github.com/swisskyrepo/PayloadsAllTheThings
我们这样做的目的是检索
可以在数据库中运行的每个查询及其参数
可以在数据库中运行的每个查询及其参数
可视化表示工具
GraphQL Voyager
https://graphql-kit.com/graphql-voyager/
它将向我们展示 GraphQL 的可视化表示,这使得我们能够深入而准确地分析 GraphQL
工具
Kiterunner
用于接口和内容发现的 API 扫描器。
https://github.com/assetnote/kiterunner
unfurl
从 URL 列表中提取路径,这将有助于生成自定义单词列表阶段
https://github.com/tomnomnom/unfurl
侦查
API版本
V1
V2
V3
……
API实现方式
开源产品
自定义接口
API 类型
RESTful [Most common]
SOAP [Very rare]
GraphQL [Newcomer]
API文档
非公开访问
WADL for RESTful API
WSDL for SOAP API
……
公开访问
API接口文档开放访问,类似开源项目
API接口请求方式
GET
POST
PATCH
PUT
DELETE
通过非公开接口文档发现入口
WADL
WSDL
……
认证&授权
需要身份验证和其他可公开访问的端点
认证/授权方式
基于Cookies (不规范)
基于Header (规范)
身份识别功能
JWT (JSON Web Token)
Encrypted value
Arbitrary value to save the user's state
Encoded Serialized value
Encrypted Serialized value
Hashed user value
e.g: hashed username, user ID
比较公开文档和非公开文档
发现隐藏的功能、请求方式或者接口
API Fuzzing
入口
功能
请求方式
对象
功能梳理
梳理API接口的请求、响应和请求头
确认每个接口的功能(每个接口的功能都是不一样的)
API可视化工具/接口发现
Swagger API
自定义的接口
……
工具化
(自动化)
(自动化)
Postman
导入API环境、文档和集合
将 BurpSuite 代理与 Postman 链接
激活API环境
发现身份验证系统、服务头和请求参数正文
识别身份验证的点
OTP
login
……
分析 JS 代码,例如“测试”选项卡中的 JSON
SoapUI
最初导入 WADL / WSDL 文件或使用应用程序的 URL
利用端点资源管理器分析端点行为
将 BurpSuite 代理与 Postman 链接
BurpSuite
拦截并监控每个请求/响应
在 API 上运行内容发现,寻找其他端点、操作和对象
分析请求和响应标头和参数
修改请求头并监控服务器对操作的响应
运行 JavaScript 扫描,分析 JavaScript 文件,以了解 API 基础架构
Fuzzing
Fuzzing 点
Endpoints
Objects
Methods
Actions
Tools
FFUF
将其与 Burp 链接以扩展站点地图范围
BurpSuite Intruder
Arjun
将其与 Burp 链接以扩展端点参数范围(因目标而异)
分析 arjun 输出以检查可能存在漏洞的参数
Wordlists
SecLists
https://github.com/danielmiessler/SecLists
FuzzDB
https://github.com/fuzzdb-project/fuzzdb
生成自定义单词列表
Using wayback machine
Using the API docs
Source Code Reviewing
e.g: JavaScript
Organization's github repository if exists
The source code of API product
- if it was open source -
0 条评论
下一页