- 已选 件
- 已售件
-
服务
- √7天无理由退货(拆封后不支持)
- √假一赔三
- √消费者保障服务
商品详情
-
ISBN编号
9787115652751
-
书名
API攻防:Web API安全指南
-
作者
[美] 科里·鲍尔(Corey Ball) 著
-
出版社名称
人民邮电出版社
-
定价
109.80
-
开本
16开
-
译者
皇智远,孔韬循 译
-
出版时间
2024-11-01
-
纸张
胶版纸
-
包装
平装
- 查看全部
编辑推荐
1. Amazon热销且长销图书:4.7星好评,位于电子书榜单TOP 7,被读者称为“漏洞猎人和 API 开发人员一定要读的书”。
2. API安全行家之作:作者Corey Ball是API攻防方向的行家,是APIsec大学的创始人,他是API安全领域公认的专家之一。
3. 免费配套课程:本书配套课程“API渗透测试”在APIsec大学中收获众多好评,一年半时间内收获9.3万播放量。
4. API全流程指南:市面上少有的从基础理论到环境搭建,再到测试工具、流程介绍,以及实战应用的全流程API攻防图书,适合网络安全的初学者快速上手。
内容简介
本书旨在打造一本Web API安全的实用指南,全面介绍Web API的攻击方法和防御策略。
本书分为4个部分,共16章。第一部分从API渗透测试的基础理论入手,探讨Web 应用程序的基础知识、Web API攻防的基本原理和常见的API漏洞。第二部分带领读者搭建自己的API测试实验室,结合2个实验案例,指导读者找到脆弱的API目标。第三部分通过侦察、端点分析、攻击身份验证、模糊测试、利用授权漏洞、批量分配、注入这7章,帮助读者了解API攻击的过程和方法,结合7个实验案例,帮助读者进行API测试。第四部分介绍3个真实的API攻防案例,旨在针对性地找到提高API安全性的具体策略和方案。
本书可为初学者提供API及其漏洞的全面介绍,也可为安全从业人员提供高级工具和技术见解。
作者简介
科里·鲍尔(Corey Ball)是 Moss Adams 的网络安全咨询经理,也是渗透测试服务部门的负责人。他在信息技术和网络安全领域积累了超过 10 年的丰富经验,涉及多个行业,包括航空航天、农业、能源、金融科技、政府服务以及医疗保健等。他曾在萨克拉门托州立大学取得英语与哲学双学士学位,他还持有 OSCP、CCISO、CEH、CISA、CISM、CRISC 和 CGEIT 等专业资格认证。
精彩书评
本书从基础概念出发,深入剖析常见 API 漏洞的成因,并提供了实战中的有效防护 策略,鼓励读者以积极的态度进行思考。这段高效的学习旅程从工具解析和侦察技巧开 始,逐步深入模糊测试和复杂访问控制等各个环节。通过丰富的实验案例介绍、技巧分 享和真实案例分析,作者将 API 安全的全部精华凝聚成本书。
——Erez Yalon,Checkmarx 安全研究副总裁,OWASP API 安全项目负责人
本书以一种生动有趣的方式,带领读者深入探索 API 的生命周期,不仅激发了读者 对 API 攻防的深入探索欲望,还点燃了读者对合法的 API 目标应用新知识的热情。本书 从基础概念到案例分析,再到工具解析与应用详解,为读者提供了全面而深入的知识体 系。本书是 API 安全领域的宝贵资源,特别适合那些致力于应对高级对抗性研究、进行 安全评估或 DevSecOps 挑战的专业人士阅读。
——Chris Roberts,Ethopass 战略顾问,国际虚拟首席信息安全官
本书为渗透测试人员提供了全面的指导和支持,帮助他们更好地理解和应对现代 Web 应用中的 API 安全挑战。无论你是刚入行的新手,还是已有一定经验的安全专家, 本书都能提供极大的帮助。本书详细介绍了 API 安全测试的工具和技巧,帮助读者快速 掌握 API 安全的核心要点。同时,书中还提供了众多实用的自动化方法和绕过防护策略, 帮助读者在渗透测试中取得更佳成效。在阅读本书后,读者会全面提升渗透测试技能,能为保障 Web 应用安全做出重要贡献。
——Vickie Li,《漏洞赏金训练营》作者
本书为 API 安全领域提供了一份宝贵的入门指南,它以通俗易懂的方式深入解析了 API 安全这一复杂而关键的主题。书中重点关注访问控制的核心议题,通过讲解真实案例, 帮助读者全面理解 API 安全的各个方面。无论是追求高额漏洞赏金的安全研究人员,还 是希望提升组织 API 安全性的决策者,都能从本书中获得实用且坚实的指导方法和建议。
——Inon Shkedy,Traceable AI 安全研究员,OWASP API 安全项目负责人
尽管互联网上充斥着有关网络安全的各种话题,但仍难以找到关于如何成功对 API 进行渗透测试的深刻见解。本书无疑满足了这一需求。本书既适合网络安全的初学者学 习参考,也适合经验丰富的专业人士阅读。
——Cristi Vlad,网络安全分析师和渗透测试员
目录
目 录
第 一部分 Web API安全的原理
第0章 为安全测试做准备 3
0.1 获得授权 3
0.2 API测试的威胁建模 4
0.3 应该测试哪些API特性 6
0.3.1 API认证测试 6
0.3.2 Web应用程序防火墙 7
0.3.3 移动应用测试 7
0.3.4 审计API文档 8
0.3.5 速率限制测试 8
0.4 限制和排除 9
0.4.1 安全测试云API 10
0.4.2 DoS测试 11
0.5 报告和修复测试 11
0.6 关于漏洞赏金范围的说明 12
0.7 小结 13
第 1章 Web应用程序是如何运行的 14
1.1 Web应用程序基础 14
1.1.1 URL 15
1.1.2 HTTP请求 16
1.1.3 HTTP响应 17
1.1.4 HTTP状态码 19
1.1.5 HTTP请求方法 20
1.1.6 有状态和无状态的HTTP 21
1.2 Web服务器数据库 23
1.2.1 SQL 23
1.2.2 NoSQL 25
1.3 API如何融入整体架构 25
1.4 小结 26
第 2章 Web API的原子论 27
2.1 Web API的工作原理 27
2.2 Web API的标准类型 30
2.2.1 RESTful API 30
2.2.2 GraphQL 35
2.3 REST API规范 39
2.4 API数据交换格式 40
2.4.1 JSON 40
2.4.2 XML 43
2.4.3 YAML 44
2.5 API身份验证 45
2.5.1 基本身份验证 46
2.5.2 API密钥 46
2.5.3 JSON Web Token 48
2.5.4 HMAC 49
2.5.5 OAuth 2.0 50
2.5.6 无身份验证 52
2.6 实操API:探索Twitter的API 52
2.7 小结 55
第3章 常见的API漏洞 56
3.1 信息泄露 56
3.2 对象级授权缺陷 57
3.3 用户身份验证缺陷 60
3.4 过度数据暴露 61
3.5 资源缺乏和速率限制 62
3.6 功能级授权缺陷 63
3.7 批量分配 64
3.8 安全配置错误 65
3.9 注入 68
3.10 不当的资产管理 69
3.11 业务逻辑漏洞 70
3.12 小结 72
第二部分 搭建API测试实验室
第4章 API黑客系统 75
4.1 Kali Linux 75
4.2 使用DevTools分析Web应用程序 76
4.3 使用Burp Suite捕获并修改请求 78
4.3.1 设置FoxyProxy 79
4.3.2 添加Burp Suite证书 80
4.3.3 Burp Suite导航 82
4.3.4 拦截流量 83
4.3.5 使用Intruder更改请求 85
4.4 在Postman中编写API请求 89
4.4.1 请求构建器 91
4.4.2 环境变量 93
4.4.3 集合 95
4.4.4 集合运行器 98
4.4.5 代码片段 98
4.4.6 测试面板 99
4.5 配置Postman 100
4.6 补充工具 101
4.6.1 使用OWASP Amass进行侦察 102
4.6.2 使用Kiterunner发现API端点 103
4.6.3 使用nikto扫描漏洞 105
4.6.4 使用OWASP ZAP扫描漏洞 106
4.6.5 使用Wfuzz进行模糊测试 106
4.6.6 使用Arjun发现HTTP参数 108
4.7 小结 109
实验1:在REST API中枚举用户账户 110
第5章 设定有API漏洞的目标 114
5.1 创建一个Linux主机 114
5.2 安装Docker和Docker Compose 115
5.3 安装易受攻击的应用程序 115
5.3.1 completely ridiculous API(crAPI) 116
5.3.2 OWASP DevSlop的Pixi 117
5.3.3 OWASP Juice Shop 118
5.3.4 DVGA 119
5.4 添加其他易受攻击的应用 119
5.5 在TryHackMe和HackTheBox上测试API 120
5.6 小结 121
实验2:查找易受攻击的API 122
第三部分 攻击API
第6章 侦察 129
6.1 被动侦察 129
6.1.1 被动侦察流程 130
6.1.2 Google Hacking 131
6.1.3 ProgrammableWeb的API搜索目录 133
6.1.4 Shodan 135
6.1.5 OWASP Amass 137
6.1.6 GitHub上的信息泄露 139
6.2 主动侦察 142
6.2.1 主动侦察过程 142
6.2.2 使用Nmap进行基线扫描 145
6.2.3 在Robots.txt文件中查找隐藏路径 145
6.2.4 使用Chrome DevTools查找敏感信息 146
6.2.5 使用Burp Suite验证API 149
6.2.6 使用OWASP ZAP爬取URI 150
6.2.7 使用Gobuster对URI进行暴力破解 152
6.2.8 使用Kiterunner发现API内容 154
6.3 小结 156
实验3:为黑盒测试执行主动侦察 157
第7章 端点分析 162
7.1 寻找请求信息 162
7.1.1 在文档中查找信息 163
7.1.2 导入API规范 166
7.1.3 逆向工程API 168
7.2 在Postman中添加API身份验证要求 171
7.3 分析功能 172
7.3.1 测试预期用途 173
7.3.2 执行特权操作 175
7.3.3 分析API响应 176
7.4 发现信息泄露 176
7.5 发现安全配置错误 177
7.5.1 冗长的错误消息 177
7.5.2 不良的传输加密 178
7.5.3 问题配置 178
7.6 发现过度数据暴露 179
7.7 发现业务逻辑漏洞 180
7.8 小结 181
实验4:构建crAPI集合并发现过度的数据暴露 181
第8章 攻击身份验证 186
8.1 经典身份验证攻击 186
8.1.1 暴力破解攻击 187
8.1.2 密码重置和多因素身份验证暴力破解攻击 188
8.1.3 密码喷洒 190
8.1.4 将Base64身份验证包含在暴力破解攻击中 192
8.2 伪造令牌 194
8.2.1 手动加载分析 194
8.2.2 实时令牌捕获分析 196
8.2.3 暴力破解可预测的令牌 197
8.3 JSON Web Token滥用 199
8.3.1 识别和分析JWT 200
8.3.2 无算法攻击 203
8.3.3 算法切换攻击 203
8.3.4 JWT破解攻击 205
8.4 小结 205
实验5:破解crAPI JWT签名 206
第9章 模糊测试 209
9.1 有效的模糊测试 209
9.1.1 选择模糊测试的有效负载 211
9.1.2 检测异常 213
9.2 广泛模糊测试与深入模糊测试 215
9.2.1 使用Postman进行广泛模糊测试 215
9.2.2 使用Burp Suite进行深入模糊测试 218
9.2.3 使用Wfuzz进行深入模糊测试 221
9.2.4 对资产管理不当进行广泛模糊测试 223
9.3 使用Wfuzz测试请求方法 225
9.4 进行深入的模糊测试以绕过输入过滤 226
9.5 用于目录遍历的模糊测试 227
9.6 小结 228
实验6:对不当的资产管理漏洞进行模糊测试 228
第 10章 利用授权漏洞 232
10.1 发现BOLA 232
10.1.1 定位资源ID 233
10.1.2 用于BOLA的A-B测试 234
10.1.3 BOLA侧信道攻击 235
10.2 发现BFLA 236
10.2.1 用于BFLA的A-B-A测试 237
10.2.2 在Postman中测试BFLA 237
10.3 授权漏洞挖掘技巧 240
10.3.1 Postman的集合变量 240
10.3.2 Burp Suite的匹配与替换 240
10.4 小结 241
实验7:查找另一个用户的车辆位置 242
第 11章 批量分配 247
11.1 查找批量分配目标 247
11.1.1 账户注册 247
11.1.2 未经授权访问组织 248
11.2 查找批量分配变量 249
11.2.1 在文档中找到变量 249
11.2.2 对未知变量进行模糊测试 250
11.2.3 盲批量赋值攻击 251
11.3 使用Arjun和Burp Suite Intruder自动化批量分配攻击 252
11.4 结合使用BFLA和批量分配 253
11.5 小结 254
实验8:更改在线商店中商品的价格 255
第 12章 注入 259
12.1 发现注入漏洞 259
12.2 XSS攻击 260
12.3 XAS攻击 262
12.4 SQL注入 264
12.4.1 手动提交元字符 265
12.4.2 SQLmap 266
12.5 NoSQL注入 268
12.6 操作系统命令注入 270
12.7 小结 272
实验9:使用NoSQL注入伪造优惠券 272
第四部分 真实世界的API攻击
第 13章 应用规避技术和速率限制 测试 279
13.1 规避API安全控制 279
13.1.1 安全控制的工作原理 279
13.1.2 API安全控制检测 281
13.1.3 使用一次性账户 282
13.1.4 规避技术 282
13.1.5 使用Burp Suite自动绕过 285
13.1.6 使用Wfuzz自动绕过 286
13.2 测试速率限制 288
13.2.1 关于宽松速率限制的说明 289
13.2.2 路径绕过 291
13.2.3 源标头欺骗 292
13.2.4 在Burp Suite中轮换IP地址 293
13.3 小结 297
第 14章 攻击GraphQL 298
14.1 GraphQL请求和集成开发环境 298
14.2 主动侦察 300
14.2.1 扫描 300
14.2.2 在浏览器中查看DVGA 302
14.2.3 使用DevTools 302
14.3 逆向工程GraphQL API 304
14.3.1 目录暴力破解以获取GraphQL端点 304
14.3.2 Cookie篡改以启用GraphiQL IDE 306
14.3.3 逆向工程GraphQL请求 307
14.3.4 使用内省逆向工程GraphQL集合 309
14.4 GraphQL API分析 311
14.4.1 使用GraphiQL Documentation Explorer编写请求 311
14.4.2 使用InQL Burp扩展 313
14.5 用于命令注入的模糊测试 316
14.6 小结 321
第 15章 数据泄露和漏洞赏金 322
15.1 数据泄露 322
15.1.1 Peloton 323
15.1.2 USPS通知可见性API 324
15.1.3 T-Mobile API泄露 326
15.2 漏洞赏金 328
15.2.1 优质API密钥的价格 328
15.2.2 私有API授权问题 329
15.2.3 星巴克:从未发生的数据泄露 331
15.2.4 Instagram的GraphQL BOLA 334
15.3 小结 336
附录 API黑客攻击检查清单 337
后记 340