API 攻防:Web API 安全指南 Hacking APIs: Breaking Web Application Programming Interfaces
科里·鮑爾(Corey Ball)
- 出版商: 人民郵電
- 出版日期: 2024-11-01
- 定價: $659
- 售價: 8.5 折 $560
- 語言: 簡體中文
- 頁數: 339
- ISBN: 7115652759
- ISBN-13: 9787115652751
- 此書翻譯自: Hacking APIs: Breaking Web Application Programming Interfaces (Paperback)
-
相關翻譯:
Hacking APIs|剖析 Web API 漏洞攻擊技法 (繁中版)
下單後立即進貨 (約4週~6週)
買這商品的人也買了...
-
$509移動 APT 威脅情報分析與數據防護
-
$779$740 -
$828$787 -
$523移動終端安全架構及關鍵技術
-
$279Botnet 檢測原理、方法與實踐
-
$580$458 -
$539$512 -
$509HTML5 + CSS3 + JavaScript 從入門到精通
-
$880$695 -
$774$735 -
$414$393 -
$352物聯網安全
-
$534$507 -
$281Android 移動應用開發基礎教程 (微課版)
-
$356Java 移動端企業大型項目實戰 SpringBoot + Android
-
$229電腦網絡安全 — 基於對抗視角的網絡安全攻防
-
$534$507 -
$594$564 -
$305信息安全導論
相關主題
商品描述
本書旨在打造一本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