Hacking APIs|剖析Web API漏洞攻擊技法

    資安人員與開發人員必須知道的 API 弱點

    收集中
    US$18.43

    內容簡介


    資安人員與開發人員必須知道的API弱點

    「這是一本關於API漏洞攻擊的重要礦脈。」
    -Chris Roberts, Vciso

    破解和網際網路緊密相連的功能鏈

    本書提供Web API安全測試的速成課程,讓讀者迅速備妥攻擊API的技巧、找出其他駭客經常錯過的缺陷,並讓自己的API更加安全。

    這是一本實作導向的教材,一開始會先訴告你有關真實世界裡的REST API之工作模式,以及它們所面臨的安全問題,接著教你如何建置一套簡化的API測試環境,以及Burp Suite、Postman和其他測試工具(如:Kiterunner和OWASP Amass),這些工具可用來執行偵察、端點分析和模糊測試。掌握這些基礎技能後,便有能力攻擊API 身分驗證機制、程式邏輯缺失、專屬於API的漏洞(如XAS和批量分配)及Web App裡常見的注入漏洞。

    研讀本書的過程中,讀者有機會攻擊特意安排的API漏洞,並學到下列技巧:
    ‧使用模糊測試技術枚舉API的使用者資訊和端點
    ‧利用Postman探索資料過度暴露的漏洞
    ‧針對API身分驗證過程執行JSON Web Token攻擊
    ‧結合多種API攻擊技巧來實現NoSQL注入
    ‧攻擊GraphQL API以找出不當的物件級授權漏洞
    ‧學習使用Postman對API進行逆向工程
    ‧從API提供的功能找出程式邏輯缺失

    本書深入探討規避真實世界API防護機制的方法、針對GraphQL的駭侵技法,以及API駭客在星巴克和Instagram等服務中找到的一系列真實漏洞。

    作者介紹


    Corey J. Ball 是Moss Adams的網路安全經理,負責領導滲透測試服務,擁有10年以上的IT和網路安全方面之工作經驗,並通過CISSP、OSCP和CCISO等專業認證。

    目錄



    致謝

    引言
    本書亮點
    編排方式
    攻擊API餐廳
    翻譯風格說明
    公司名稱或人名的翻譯
    產品或工具程式的名稱不做翻譯
    縮寫術語不翻譯
    部分不按文字原義翻譯
    縮寫術語全稱中英對照表

    Part I 關於WEB API的安全性
    CH0 為滲透測試做好事前準備
    CH1 Web應用程式的運作方式
    CH2 Web API剖析
    CH3 API常見的漏洞

    Part II 建置測試API的實驗環境
    CH4 架設駭侵API的攻擊電腦
    實作練習一:枚舉REST API裡的使用者帳戶
    CH5 架設有漏洞的API靶機
    實作練習二:尋找要攻擊的API

    Part III 攻擊API
    CH6 偵察情資
    實作練習三:為黑箱測試執行主動偵察.
    CH7 端點分析
    實作練習四:組建crAPI集合及尋找過度暴露的資料
    CH8 攻擊身分驗證機制
    實作練習五:破解crAPI JWT簽章
    CH9 模糊測試
    實作練習六:以模糊測試尋找不當資產管理漏洞
    CH10 攻擊授權機制
    實作練習七:找出另一位使用者的車輛位置
    CH11 批量分配漏洞
    實作練習八:竄改網路商店的商品價格.
    CH12 注入攻擊
    實作練習九:利用NoSQL注入偽造優惠券

    Part IV 真實的API入侵事件
    CH13 應用規避技巧和檢測請求速率限制
    CH14 攻擊GraphQL
    CH15 真實資料外洩事件和漏洞賞金計畫

    總結
    APP A Web API駭侵查核清單
    APP B 參考文獻

    章節目錄

    • 1-1
      封面
    • 1-2
      書名頁
    • 1-3
      目錄
    • 1-4
    • 1-5
      致謝
    • 1-6
      引言
    • 1-7
      本書亮點
    • 1-8
      編排方式
    • 1-9
      攻擊API餐廳
    • 1-10
      翻譯風格說明
    • 1-11
      公司名稱或人名的翻譯
    • 1-12
      產品或工具程式的名稱不做翻譯
    • 1-13
      縮寫術語不翻譯
    • 1-14
      部分不按文字原義翻譯
    • 1-15
      縮寫術語全稱中英對照表
    • 1-16
      Part I 關於WEB API的安全性
    • 1-17
      0 為滲透測試做好事前準備
    • 1-18
      取得授權
    • 1-19
      為API測試進行威脅塑模
    • 1-20
      該測試哪些API功能
    • 1-21
      測試API的身分驗證功能
    • 1-22
      Web應用程式防火牆
    • 1-23
      檢視API說明文件
    • 1-24
      測試行動APP
    • 1-25
      測試請求速率限制能力
    • 1-26
      限制和排除條款
    • 1-27
      測試DoS防禦能力
    • 1-28
      測試雲端API的注意事項
    • 1-29
      測試報告及複測服務
    • 1-30
      關於漏洞賞金
    • 1-31
      小結
    • 1-32
      1 Web應用程式的運作方式
    • 1-33
      Web App概述
    • 1-34
      網址(URL)
    • 1-35
      HTTP請求
    • 1-36
      HTTP回應
    • 1-37
      HTTP的回應狀態碼
    • 1-38
      HTTP的請求方法
    • 1-39
      有狀態和無狀態的HTTP
    • 1-40
      Web伺服器所用的資料庫
    • 1-41
      SQL
    • 1-42
      NoSQL
    • 1-43
      API搭配Web APP
    • 1-44
      小結
    • 1-45
      2 Web API剖析
    • 1-46
      Web API的作業方式
    • 1-47
      Web API的標準類型
    • 1-48
      RESTful API
    • 1-49
      GraphQL
    • 1-50
      REST API規範
    • 1-51
      API的資料交換格式
    • 1-52
      JSON
    • 1-53
      XML
    • 1-54
      YAML
    • 1-55
      API的身分驗證
    • 1-56
      基本型身分驗證
    • 1-57
      API金鑰
    • 1-58
      JSON Web Tokens
    • 1-59
      HMAC
    • 1-60
      OAuth 2.0
    • 1-61
      無身分驗證機制
    • 1-62
      API實戰:探索Twitter API
    • 1-63
      小結
    • 1-64
      3 API常見的漏洞
    • 1-65
      資訊洩露
    • 1-66
      不當的物件授權
    • 1-67
      不當的使用者身分驗證機制
    • 1-68
      資料過度暴露
    • 1-69
      不當的功能授權
    • 1-70
      缺乏資源和速率限制
    • 1-71
      批量分配
    • 1-72
      不當的安全組態
    • 1-73
      注入漏洞
    • 1-74
      資產管理不當
    • 1-75
      程式邏輯缺失
    • 1-76
      小結
    • 1-77
      Part II 建置測試API的實驗環境
    • 1-78
      4 架設駭侵API的攻擊電腦
    • 1-79
      Kali Linux
    • 1-80
      使用DevTools分析Web App
    • 1-81
      使用Burp Suite攔截和竄改請求內容
    • 1-82
      設置FoxyProxy
    • 1-83
      匯入Burp Suite的加密憑證
    • 1-84
      一覽Burp Suite功能模組
    • 1-85
      攔截流量
    • 1-86
      使用Intruder竄改請求
    • 1-87
      利用Postman編製API請求
    • 1-88
      請求建構器
    • 1-89
      環境
    • 1-90
      集合
    • 1-91
      集合執行器
    • 1-92
      測試面板
    • 1-93
      程式碼片段
    • 1-94
      讓Postman搭配Burp Suite作業
    • 1-95
      補充工具
    • 1-96
      使用OWASP Amass進行偵察
    • 1-97
      使用Kiterunner探索API端點
    • 1-98
      使用Nikto掃描漏洞
    • 1-99
      使用OWASP ZAP掃描漏洞
    • 1-100
      利用Wfuzz進行模糊測試
    • 1-101
      使用Arjun找出HTTP參數
    • 1-102
      實作練習一:枚舉REST API裡的使用者帳戶
    • 1-103
      小結
    • 1-104
      5 架設有漏洞的API靶機
    • 1-105
      建立Linux主機
    • 1-106
      安裝Docker和Docker Compose
    • 1-107
      安裝有漏洞的應用系統
    • 1-108
      OWASP crAPI
    • 1-109
      OWASP DevSlop的Pixi
    • 1-110
      OWASP Juice Shop
    • 1-111
      DVGA
    • 1-112
      其他有漏洞的應用系統
    • 1-113
      破解TryHackMe和HackTheBox上的API漏洞
    • 1-114
      實作練習二:尋找要攻擊的API
    • 1-115
      小結
    • 1-116
      Part III 攻擊API
    • 1-117
      6 偵察情資
    • 1-118
      被動式偵察
    • 1-119
      被動偵察的過程
    • 1-120
      Google Hacking
    • 1-121
      ProgrammableWeb的API搜尋目錄
    • 1-122
      Shodan
    • 1-123
      OWASP Amass
    • 1-124
      暴露於GitHub的資訊
    • 1-125
      主動偵察
    • 1-126
      主動偵察的過程
    • 1-127
      使用Nmap執行基礎掃描
    • 1-128
      從Robots.txt查找隱藏的路徑
    • 1-129
      以Chrome DevTools尋找機敏資訊
    • 1-130
      以Burp驗證API
    • 1-131
      以ZAP爬找URI
    • 1-132
      以Gobuster暴力猜測URI
    • 1-133
      以Kiterunner找出API的內容
    • 1-134
      實作練習三:為黑箱測試執行主動偵察
    • 1-135
      小結
    • 1-136
      7 端點分析
    • 1-137
      查找請求資訊
    • 1-138
      從說明文件查找可用資訊
    • 1-139
      匯入API規格
    • 1-140
      對API進行逆向工程
    • 1-141
      在Postman加入API身分驗證的需求
    • 1-142
      分析API的功能
    • 1-143
      測試預期的用法
    • 1-144
      執行特權操作
    • 1-145
      分析API的回應內容
    • 1-146
      尋找資訊洩露
    • 1-147
      尋找不當的安全組態
    • 1-148
      詳細的錯誤訊息
    • 1-149
      傳輸加密機制不佳
    • 1-150
      有問題的組態
    • 1-151
      尋找過度揭露的資料
    • 1-152
      尋找程式邏輯的缺失
    • 1-153
      實作練習四:組建crAPI集合及尋找過度暴露的資料
    • 1-154
      小結
    • 1-155
      8 攻擊身分驗證機制
    • 1-156
      典型的身分驗證攻擊
    • 1-157
      密碼暴力攻擊
    • 1-158
      對密碼重設和多因子身分驗證進行暴力攻擊
    • 1-159
      密碼噴灑
    • 1-160
      暴力攻擊Base64的身分驗證
    • 1-161
      編製身分符記
    • 1-162
      手動載入分析
    • 1-163
      即時擷取身分符記並分析
    • 1-164
      暴力破解可預測的身分符記
    • 1-165
      濫用JWT
    • 1-166
      尋找和分析JWT
    • 1-167
      None式攻擊
    • 1-168
      切換演算法攻擊
    • 1-169
      破解JWT
    • 1-170
      實作練習五:破解crAPI JWT簽章
    • 1-171
      小結
    • 1-172
      9 模糊測試
    • 1-173
      有效的模糊測試
    • 1-174
      選擇模糊測試的載荷
    • 1-175
      檢測異常情況
    • 1-176
      模糊測試的廣度與深度
    • 1-177
      使用Postman進行廣度模糊測試
    • 1-178
      使用Burp進行深度模糊測試
    • 1-179
      使用Wfuzz進行深度模糊測試
    • 1-180
      以廣度模糊測試找出不當的資產管理
    • 1-181
      使用Wfuzz測試請求方法
    • 1-182
      以更深度的模糊來繞過輸入資料清理
    • 1-183
      以模糊測試進行目錄遍歷
    • 1-184
      實作練習六:以模糊測試尋找不當資產管理漏洞
    • 1-185
      小結
    • 1-186
      10 攻擊授權機制
    • 1-187
      尋找不當的物件授權漏洞
    • 1-188
      查找資源ID
    • 1-189
      BOLA的A-B測試
    • 1-190
      側信道的BOLA漏洞
    • 1-191
      尋找不當的功能層級授權漏洞
    • 1-192
      BFLA的A-B-A測試
    • 1-193
      利用Postman檢測BFLA
    • 1-194
      授權漏洞的攻擊技巧
    • 1-195
      Postman的集合變數
    • 1-196
      Burp的Match和Replace功能
    • 1-197
      實作練習七:找出另一位使用者的車輛位置
    • 1-198
      小結
    • 1-199
      11 批量分配漏洞
    • 1-200
      尋找批量分配的攻擊目標
    • 1-201
      對機構進行未授權存取
    • 1-202
      帳戶註冊
    • 1-203
      尋找批量分配變數
    • 1-204
      從說明文件尋找變數
    • 1-205
      對未知變數執行模糊測試
    • 1-206
      盲眼批量分配攻擊
    • 1-207
      利用Arjun和Burp的Intruder自動執行批量分配攻擊
    • 1-208
      結合BFLA和批量分配漏洞
    • 1-209
      實作練習八:竄改網路商店的商品價格
    • 1-210
      小結
    • 1-211
      12 注入攻擊
    • 1-212
      尋找注入漏洞
    • 1-213
      跨站腳本(XSS)
    • 1-214
      跨API腳本(XAS)
    • 1-215
      SQL注入
    • 1-216
      手動提交元字符
    • 1-217
      SQLmap
    • 1-218
      NoSQL注入
    • 1-219
      作業系統命令注入
    • 1-220
      實作練習九:利用NoSQL注入偽造優惠券
    • 1-221
      小結
    • 1-222
      Part IV 真實的API入侵事件
    • 1-223
      13 應用規避技巧和檢測請求速率限制
    • 1-224
      規避API安全管控機制
    • 1-225
      安全管控機制的運作原理
    • 1-226
      偵測API安全管控機制
    • 1-227
      使用Burner帳戶
    • 1-228
      規避技巧
    • 1-229
      利用Burp自動規避
    • 1-230
      利用Wfuzz自動繞過WAF
    • 1-231
      在限速機制下執行測試
    • 1-232
      關於寬鬆的速率限制
    • 1-233
      利用路徑變化繞過速率限制
    • 1-234
      偽造來源標頭項
    • 1-235
      在Burp裡輪換IP位址
    • 1-236
      小結
    • 1-237
      14 攻擊GraphQL
    • 1-238
      GraphQL的請求和整合型開發環境
    • 1-239
      主動偵察
    • 1-240
      執行掃描
    • 1-241
      用瀏覽器檢視DVGA
    • 1-242
      使用開發人員工具
    • 1-243
      對GraphQL API進行逆向工程
    • 1-244
      以目錄暴力掃描找出GraphQL的端點
    • 1-245
      竄改Cookie來啟用GraphiQL IDE
    • 1-246
      對GraphQL請求進行逆向工程
    • 1-247
      使用自我披露功能對GraphQL集合進行逆向工程
    • 1-248
      分析GraphQL API
    • 1-249
      利用GraphiQL的Documentation Explorer編造請求
    • 1-250
      使用Burp的InQL插件
    • 1-251
      命令注入的模糊測試
    • 1-252
      小結
    • 1-253
      15 真實資料外洩事件和漏洞賞金計畫
    • 1-254
      資料外洩
    • 1-255
      Peloton
    • 1-256
      USPS的Informed Visibility API
    • 1-257
      T-Mobile API的資料外洩
    • 1-258
      漏洞賞金計畫
    • 1-259
      良好API金鑰的代價
    • 1-260
      私用API的授權問題
    • 1-261
      星巴克:前所未有的資料外洩事件
    • 1-262
      Instagram在GraphQL的BOLA弱點
    • 1-263
      小結
    • 1-264
      總結
    • 1-265
      A Web API駭侵查核清單
    • 1-266
      B 參考文獻
    • 1-267
      版權頁
    • 1-268
      封底

    常見問答

    您可以透過手機、平板或是電腦登入 HiSKIO 平台,在【我的學習】>【我的書籍】頁面,選擇想看的電子書。

    猜你喜歡

    用戶評價

    | 收集中

    銷售方案