商品详情
书名:API攻防:Web API*指南
定价:109.8
ISBN:9787115652751
作者:科里·鲍尔(Corey Ball)
版次:第1版
出版时间:2024-11
内容提要:
本书旨在打造一本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 等专业资格认证。
目录:
目 录
第 一部分 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
定价:109.8
ISBN:9787115652751
作者:科里·鲍尔(Corey Ball)
版次:第1版
出版时间:2024-11
内容提要:
本书旨在打造一本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 等专业资格认证。
目录:
目 录
第 一部分 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
- 人民邮电出版社有限公司 (微信公众号认证)
- 人民邮电出版社微店,为您提供最全面,最专业的一站式购书服务
- 扫描二维码,访问我们的微信店铺
- 随时随地的购物、客服咨询、查询订单和物流...