一、概述
1.1 API的基本概念
1.2 API的作用
1.3 API的类型
二、Web API 渗透测试
2.1 测试工具
2.2 信息收集
2.2.1 目录扫描
2.2.2 网络流量分析
2.2.3 使用互联网资源
2.3 漏洞检测
2.4 实战案例
2.4.1 接口枚举
2.4.2 参数枚举
2.4.3 用户名枚举
2.4.4 暴力破解
2.4.5 错误信息泄露
2.4.6 CRLF注入
一、概述
API(Application Programming Interface,应用程序编程接口)是一个允许不同软件应用程序之间进行通信和数据交换的接口。API定义了一组规则和协议,软件开发者可以使用这些规则和协议来访问操作系统、库、服务或其他应用程序的功能。
1.1 API的基本概念
接口(Interface):
API提供了一组公开的方法和端点,供外部系统调用。
这些方法和端点通常通过URL、函数名或服务名称来表示。
请求和响应(Request and Response):
客户端向API发送请求,请求中包含所需的操作和相关数据。
服务器处理请求并返回响应,响应中包含操作结果和数据。
协议(Protocol):
API使用特定的协议来通信,常见的协议包括HTTP、HTTPS、FTP等。
例如,基于HTTP协议的API通过HTTP请求和响应进行通信。
数据格式(Data Format):
API请求和响应的数据通常以标准格式表示,常见的格式包括JSON、XML、CSV等。
JSON是最常用的数据格式,因为它轻量级且易于解析。
1.2 API 的作用
数据访问:
提供一种访问应用程序或服务中数据的方式。
例如,数据库API允许应用程序访问和操作数据库中的数据。
功能调用:
允许应用程序调用另一程序的功能或服务。
例如,支付API允许应用程序集成支付功能。
系统集成:
实现不同系统或服务之间的集成和互操作。
例如,社交媒体API允许应用程序发布内容到社交媒体平台。
1.3 API 的类型
Web API:
通过HTTP协议进行通信的API,常用于Web服务和应用程序。
例如,RESTful API、GraphQL API。
库和框架API:
提供特定编程语言或框架功能的API,供开发者在应用程序中使用。
例如,Java API、Python标准库。
操作系统API:
提供操作系统功能访问的API。
例如,Windows API、POSIX API。
远程API:
允许在网络上远程访问服务的API。
例如,SOAP API、XML-RPC API。
二、Web API 渗透测试
2.1 测试工具
拦截数据包:Burp Suite等
构造API请求:Postman、Apifox、Apipost等
扫描工具:Owasp Zap、Awvs、Xray等
2.2 信息收集
信息收集是 Web API 渗透测试的重要步骤,无论是黑盒测试还是白盒测试,都需要系统地收集相关信息。在白盒测试中,测试人员可以直接获取API文档和代码等详细信息。在黑盒测试中,测试人员无法直接获取API文档,代码等资源,只能从外部自行收集。
以下是API信息收集的方法:
2.2.1 目录扫描
大多数Web API位于网站/api/、/v1/api/、/v2/api/等目录中,通过目录扫描可以发现
使用Burp Suite主动扫描和被动扫描也不错
使用Xray被动扫描也不错
2.2.2 网络流量分析
有些系统的API和Web应用的端口是独立的,但是只要有交互通过分析流量就可以获取API接口,如Burp Proxy组件记录、浏览器开发者工具网络组件
有些API会写在经过混淆后的Javascript文件中,无法直接获取,可以使用此方法
2.2.3 使用互联网资源
通过Github查询开源系统是否存在API及API目录和文档等
通过Google、Shodan、Censys、Fofa等搜索引擎搜索
收集到API接口信息后,可以分析API的目录结构、接口命名规则、参数命名规则、功能和业务逻辑等,根据这些信息可以进行接口枚举和参数枚举。
2.3 漏洞检测
其实针对Web API的渗透测试和Web应用的渗透测试差不多,不过通常API的功能可能没有Web应用那么多,涉及的测试项较少:
2.4 实战案例
2.4.1 接口枚举:
根据响应状态或响应提示判断存在的接口和不存在的接口:
2.4.2 参数枚举:
根据响应提示判断参数是否存在。
如参数不存在时响应:
参数存在时响应:
2.4.3 用户名枚举:
用户名不存在时响应:
用户名存在时响应:
2.4.4 暴力破解:
2.4.5 错误信息泄露:
错误信息中包含物理路径、后端语言、CMS等信息:
2.4.6 CRLF注入:
参数添加到了响应头:
利用CRLF注入进行XSS攻击:
标签:指南,Web,接口,响应,API,2.2,2.4 From: https://www.cnblogs.com/o-O-oO/p/18352638原创 Hack All Sec