购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

前言

如今,根据研究人员的估算,API请求在所有应用请求中的占比已超过80%。因此,对业务至关重要的资产可能潜藏着毁灭性的漏洞。

经过深入研究和详细分析,我们发现API是一个极具潜力的攻击媒介。鉴于其设计初衷是向其他应用程序传递信息,这无疑为潜在的攻击者提供了一定的便利。值得注意的是,为了获取组织内部最为敏感的数据,攻击者可能并不需要采取复杂的网络穿透策略,亦无须规避尖端防病毒软件的监测,甚至无须利用尚未被公众发现的零日漏洞。相反,他们可能仅需向特定的API端点发送一个精心构造的请求,便有可能完成攻击。

本书旨在全面介绍Web API,详细阐述如何对其进行测试以揭示潜在的漏洞。本书主要测试REST API的安全性,REST API是Web应用程序中广泛使用的API格式,同时也会测试GraphQL API的安全性。你将先学习运用API所需的工具和技术。随后,我们将引导你探测潜在的漏洞,并指导你如何利用这些漏洞。最后,你将学会如何报告所发现的问题,从而防止下一次数据泄露。

攻击Web API的诱惑

2017年,《经济学人》杂志(国际商业领域的主要信息来源)发布了一篇文章,指出:“在当今世界,数据的价值已超越了石油。”API作为数字时代的桥梁,使得各种宝贵的信息能够迅速在全球范围内流通。简而言之,API是一种技术,它促进了不同应用程序之间的有效沟通。例如,当Python应用程序需要与Java应用程序的功能进行交互时,情况可能变得复杂。然而,通过利用API,开发人员得以构建模块化的应用程序,并能充分利用其他应用程序的专业功能。因此,他们无须从零开始开发地图、支付处理器、机器学习算法或认证流程。

因此,众多现代Web应用程序纷纷采用API。然而,在新技术发展进步的同时,网络安全问题亦随之而来。API大大扩展了这些应用程序的攻击面,其防御机制往往不够健全,使得攻击者能够轻易利用它们获取数据。此外,许多API缺乏与其他攻击向量相同的安全控制措施,从而成为企业的潜在风险点。

不仅如此,早在多年前,Gartner已做出预测,到2022年,API将成为主要的攻击目标。因此,作为网络安全专家,我们必须紧跟技术创新的步伐,采取有效的防护措施来保护API。通过发现API的潜在漏洞,及时报告并向企业传达相关风险,我们可以为遏制网络犯罪做出积极贡献。

本书组织结构

攻击API并不像你想象的那样充满挑战性。一旦了解了它们的运作原理,黑客只需要发送正确的HTTP请求,就可以发起API攻击。然而,通常用于漏洞挖掘和Web应用程序渗透测试的工具和技术并不适用于API测试。例如,你不能只是对一个API进行通用漏洞扫描,就期待能得到有用的结果。我经常对易受攻击的API进行扫描,结果却为虚假阴性。当API未得到充分测试时,组织会产生虚假安全感,从而面临入侵风险。

本书各部分均以前一部分为基础。

第一部分:Web API安全的原理

第一部分包含第0章~第3章。在该部分中,先介绍安全测试的预备知识,再介绍Web应用程序及驱动它们的Web API的基本知识,包括本书主题之一的REST API和越来越受欢迎的GraphQL,还将探讨常见的API漏洞。

第二部分:搭建API测试实验室

第二部分包含第4章和第5章。在该部分中,主要介绍如何搭建自己的API测试实验室,还介绍了相关工具,如Burp Suite、Postman等,还将建立一个易受攻击的API目标实验室,帮助你进行攻击实践。

第三部分:攻击API

第三部分包含第6章~第12章。在该部分中,探讨主要介绍攻击API的方法论,指导你执行针对 API 的常见攻击。你将学习通过开源情报技术发现API,分析它们以了解它们的攻击面,深入了解针对API的攻击方法。你还将学会逆向工程API、绕过身份验证,并对安全问题进行模糊测试。

第四部分:真实世界的API攻击

第四部分包含第13章~第15章。在该部分中,主要介绍API漏洞如何在数据泄露和漏洞赏金中被利用。你将了解如何运用应用规避技术,并进行速率限制测试。你还将了解针对GraphQL的攻击示例,将所学技术应用于GraphQL格式。

实验部分

本书第二部分和第三部分的每一章均包含实验部分,供你实践本书技术。你可使用除本书介绍的工具之外的其他工具完成实验。

本书适合对Web应用程序攻击感兴趣的人,以及希望增加一项技能的渗透测试人员和漏洞赏金猎人阅读。本书的设计旨在方便初学者在第一部分学习Web API的基本知识,在第二部分搭建黑客实验室,在第三部分开始攻击。

攻击API餐厅

在我们开始学习之前,让我用一个比喻来帮助大家理解。想象一下,一个应用程序就像一家餐厅,API 文档就像菜单,告诉你可以点什么样的菜品。作为顾客与厨师之间的联络人,服务员就像API本身。你可以根据菜单向服务员提出请求,服务员把你点的菜品端上来。

至关重要的是,API用户无须了解厨师如何烹饪佳肴,或后台程序如何运作。相反,他们应遵循一套指令来发出请求,并接收相应的响应。随后,开发人员可以根据需求编写应用程序,以满足各种请求。

作为一名API黑客,你需要深入探索餐厅的每个角落,了解餐厅的运营方式。你可能会尝试绕过它的“保镖”,或提供一个被盗用的身份验证令牌。此外,你还需要分析菜单,寻找诱使API向你提供未经授权数据的方法,例如欺骗服务员把所有的菜品都端上来,你甚至可能说服餐厅所有者将整个餐厅的钥匙交给你。

本书引导你探讨以下主题,以全面的方式来攻击API:

● 理解Web应用程序的工作原理以及Web API的结构;

● 从黑客的角度掌握顶级API漏洞;

● 学习最有效的API黑客工具;

● 进行被动和主动的API侦察,以发现API的存在,找到暴露的秘密,并分析API的功能;

● 与API进行交互,并利用模糊测试功能测试它们;

● 通过利用你发现的API漏洞,执行各种攻击。

在本书中,我们将采用对抗性思维来充分利用各类API的功能与特性。我们越能模拟潜在对手,就越能发现可以报告给API提供商的潜在漏洞。我认为,我们甚至可以共同防止下一场大规模的API数据泄露事件。 QZCKqJca7UboUEQDr2baPnmtOEGRweVlK1EhnbvzQDgJm6ON1VB77ne5cQ5i2bc3

点击中间区域
呼出菜单
上一章
目录
下一章
×