首页 > 其他分享 >【Web API 】渗透测试指南

【Web API 】渗透测试指南

时间:2024-08-11 21:28:26浏览次数:12  
标签:指南 Web 接口 响应 API 2.2 2.4

一、概述
   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攻击:

原创 Hack All Sec

标签:指南,Web,接口,响应,API,2.2,2.4
From: https://www.cnblogs.com/o-O-oO/p/18352638

相关文章

  • 【数据分析---- Pandas进阶指南:核心计算方法、缺失值处理及数据类型管理】
    前言:......
  • 在IIS上部署ASP.NET Core Web API
    在IIS上部署ASP.NETCoreWebAPI和BlazorWasm详细教程  前言前段时间我们完成了七天.NET8操作SQLite入门到实战的开发系列教程,有不少同学留言问如何将项目发布部署到IIS上面运行。本篇文章我们就一起来讲讲在IIS上部署ASP.NETCoreWebAPI和BlazorWasm。前提条件......
  • RabbitMQ Web管理界面简介
    OverviewTotalsQueuedmessagesReadyNumberofmessagesthatareavaliabletobedeliverednow.待消费的消息数量一般来说,如果队列中ready状态的消息数量比较多,则说明消费者的处理能力可能不足,可以考虑适当增加消费者UnackedNumberofmessagesforwhichthe......
  • Vue 2 搭建后台管理系统 - 全面指南
    引言随着前端技术的发展,Vue.js成为了构建现代化Web应用程序的首选框架之一。Vue2的出现极大地简化了前端开发流程,而搭配ElementUI或AntDesignVue等成熟的UI框架,则可以快速构建出功能完善且美观的后台管理系统。本文将带你一步步搭建一个基本的后台管理系统。vu......
  • 从英特尔错失AI机遇看未来生活的启示与行动指南
    题目:从英特尔错失AI机遇看未来生活的启示与行动指南引言在科技日新月异的今天,每一个决策都可能成为影响企业乃至整个行业走向的关键。英特尔错失投资OpenAI的机遇,不仅揭示了企业在面对新兴技术时的战略短视,也为我们的生活和工作带来了深刻的启示。本文旨在探讨这一事件背后的......
  • Vue.js 搭建大屏可视化系统 - 最全指南
    引言随着数据量的增长和业务需求的变化,大屏可视化系统成为了展示实时数据、监控关键指标的重要手段。Vue.js作为一款流行的前端框架,提供了丰富的工具和插件,非常适合用于构建这种类型的系统。本文将引导你从零开始,逐步构建一个高效、可扩展的大屏可视化系统。vue大屏系统项目......
  • Ant Design Vue 快速上手指南 + 排坑
    引言AntDesignVue(简称ADVue)是基于Vue.js的高质量UI组件库,由蚂蚁金服设计团队开发并维护。它提供了丰富的组件和示例,能够帮助开发者快速构建出美观且易用的Web应用程序。本文将指导你如何快速入门ADVue,并分享一些常见的“坑”以及如何避免它们。安装与配置1.......
  • winrssrv.dll:深入解析其功能与缺失修复指南
    winrssrv.dll是一个动态链接库(DynamicLinkLibrary,简称DLL)文件,与Windows系统的一些服务和功能相关。如果在电脑启动时提示winrssrv.dll文件丢失,那么可能会影响到系统的稳定性和某些功能的正常运行。以下是一些解决winrssrv.dll文件丢失问题的步骤:1.使用系统文件检查器(SFC)......
  • 交互题使用指南
    一般oi场上的交互题都是使用Grader交互(cf是stdio交互)。本文讲解一下怎么做交互题,评测交互题。怎么做基本知识题目会给你几个函数接口,一般作为询问的方式。出题人会写一个grader.cpp里面就包含了这几个函数。调用grader里面的函数的方法是:加上题目给的头文件/在前面......
  • OpenWebUI + Ollma 构建本地AI知识库
    本机环境:rocky_linux9.4,10G8核,100G磁盘部署的实验 安装Docker#step1:安装必要的一些系统工具sudoyuminstall-yyum-utilsdevice-mapper-persistent-datalvm2#Step2:添加软件源信息sudoyum-config-manager--add-repohttps://mirrors.aliyun.com/docker-ce/......