業務安全漏洞作為常見的Web安全漏洞,在各大漏洞平臺時有報道,本書是一本從原理到案例分析,系統性地介紹這門技術的書籍。撰寫團隊具有10年大型網站業務安全測試經驗,成員們對常見業務安全漏洞進行梳理,總結出了全面、詳細的適用于電商、銀行、金融、證券、保險、游戲、社交、招聘等業務系統的測試理論、工具、方法及案例。本書共15章,包括理論篇、技術篇和實踐篇。理論篇首先介紹從事網絡安全工作涉及的相關法律法規,請大家一定要做一個遵紀守法的白帽子,然后介紹業務安全引發的一些安全問題和業務安全測試相關的方法論,以及怎么去學好業務安全。技術篇和實踐篇選取的內容都是這些白帽子多年在電商、金融、證券、保險、游戲、社交、招聘、O2O等不同行業、不同的業務系統存在的各種類型業務邏輯漏洞進行安全測試總結而成的,能夠幫助讀者理解不同行業的業務系統涉及的業務安全漏洞的特點。具體來說,技術篇主要介紹登錄認證模塊測試、業務辦理模塊測試、業務授權訪問模塊測試、輸入/輸出模塊測試、回退模塊測試、驗證碼機制測試、業務數據安全測試、業務流程亂序測試、密碼找回模塊測試、業務接口模塊調用測試等內容。實踐篇主要針對技術篇中的測試方法進行相關典型案例的測試總結,包括賬號安全案例總結、密碼找回案例總結、越權訪問案例、OAuth 2.0案例總結、在線支付安全案例總結等。通過對本書的學習,讀者可以很好地掌握業務安全層面的安全測試技術,并且可以協助企業規避業務安全層面的安全風險。本書比較適合作為企業專職安全人員、研發人員、普通高等院校網絡空間安全學科的教學用書和參考書,以及作為網絡安全愛好者的自學用書。
陳曉光恒安嘉新(北京)科技股份公司執行總裁,資深安全專家,畢業于北京郵電大學信息安全專業。長期從事網絡與信息安全方面的技術研究、項目管理和市場拓展工作。曾主導和參與多項重大國家標準、國家863 項目和242 安全課題;建設了多個全國性安全系統工程;為電信、金融和政府等多個行業提供安全建議。在安全風險評估、安全管理體系、安全標準、移動互聯網安全和通信安全等領域有著豐富的實踐經驗。擁有CISSP、CISA、ISO27001 LA 等多項國際安全從業資質。胡兵恒安嘉新(北京)科技股份公司安全攻防與應急響應中心總經理。負責公司安全產品解決方案、安全攻防技術研究、安全咨詢服務等工作。多年來,一直致力于安全攻防技術的研究,曾參與國家信息安全有關部門、各大電信運營商、高校多個課題研究項目。帶領安全研究團隊支撐“中國反網絡病毒聯盟平臺ANVA”、“國家信息安全漏洞共享平臺CNVD”運營工作,以及承擔國家重要活動期間的安全保障工作。張作峰(Rce)恒安嘉新(北京)科技股份公司安全攻防與應急響應中心副總經理、軒轅攻防實驗室團隊負責人、安全專家、互聯網白帽子,原啟明星辰資深安全研究員。十余年網絡安全服務、安全研究、應急保障工作經驗,在職期間參與完成了多個大型安全服務、集成、安全課題項目,以及多次國家重要活動的網絡安全應急保障任務。
理論篇
第1章 網絡安全法律法規 2
第2章 業務安全引發的思考 8
2.1 行業安全問題的思考 8
2.2 如何更好地學習業務安全 9
第3章 業務安全測試理論 11
3.1 業務安全測試概述 11
3.2 業務安全測試模型 12
3.3 業務安全測試流程 13
3.4 業務安全測試參考標準 18
3.5 業務安全測試要點 18
技術篇
第4章 登錄認證模塊測試 22
4.1 暴力破解測試 22
4.1.1 測試原理和方法 22
4.1.2 測試過程 22
4.1.3 修復建議 30
4.2 本地加密傳輸測試 30
4.2.1 測試原理和方法 30
4.2.2 測試過程 30
4.2.3 修復建議 32
4.3 Session測試 32
4.3.1 Session會話固定測試 32
4.3.2 Seesion會話注銷測試 35
4.3.3 Seesion會話超時時間測試 39
4.4 Cookie仿冒測試 42
4.4.1 測試原理和方法 42
4.4.2 測試過程 42
4.4.3 修復建議 45
4.5 密文比對認證測試 45
4.5.1 測試原理和方法 45
4.5.2 測試過程 45
4.5.3 修復建議 48
4.6 登錄失敗信息測試 48
4.6.1 測試原理和方法 48
4.6.2 測試過程 49
4.6.3 修復建議 50
第5章 業務辦理模塊測試 51
5.1 訂單ID篡改測試 51
5.1.1 測試原理和方法 51
5.1.2 測試過程 51
5.1.3 修復建議 55
5.2 手機號碼篡改測試 55
5.2.1 測試原理和方法 55
5.2.2 測試過程 56
5.2.3 修復建議 57
5.3 用戶ID篡改測試 58
5.3.1 測試原理和方法 58
5.3.2 測試過程 58
5.3.3 修復建議 60
5.4 郵箱和用戶篡改測試 60
5.4.1 測試原理和方法 60
5.4.2 測試過程 61
5.4.3 修復建議 62
5.5 商品編號篡改測試 63
5.5.1 測試原理和方法 63
5.5.2 測試過程 63
5.5.3 修復建議 65
5.6 競爭條件測試 66
5.6.1 測試原理和方法 66
5.6.2 測試過程 67
5.6.3 修復建議 69
第6章 業務授權訪問模塊 70
6.1 非授權訪問測試 70
6.1.1 測試原理和方法 70
6.1.2 測試過程 70
6.1.3 修復建議 71
6.2 越權測試 72
6.2.1 測試原理和方法 72
6.2.2 測試過程 72
6.2.3 修復建議 76
第7章 輸入/輸出模塊測試 77
7.1 SQL注入測試 77
7.1.1 測試原理和方法 77
7.1.2 測試過程 78
7.1.3 修復建議 84
7.2 XSS測試 84
7.2.1 測試原理和方法 84
7.2.2 測試過程 85
7.2.3 修復建議 88
7.3 命令執行測試 89
7.3.1 測試原理和方法 89
7.3.2 測試過程 89
7.3.3 修復建議 91
第8章 回退模塊測試 92
8.1 回退測試 92
8.1.1 測試原理和方法 92
8.1.2 測試過程 92
8.1.3 修復建議 93
第9章 驗證碼機制測試 94
9.1 驗證碼暴力破解測試 94
9.1.1 測試原理和方法 94
9.1.2 測試過程 94
9.1.3 修復建議 97
9.2 驗證碼重復使用測試 97
9.2.1 測試原理和方法 97
9.2.2 測試過程 98
9.2.3 修復建議 100
9.3 驗證碼客戶端回顯測試 101
9.3.1 測試原理和方法 101
9.3.2 測試過程 101
9.3.3 修復建議 104
9.4 驗證碼繞過測試 104
9.4.1 測試原理和方法 104
9.4.2 測試過程 104
9.4.3 修復建議 106
9.5 驗證碼自動識別測試 106
9.5.1 測試原理和方法 106
9.5.2 測試過程 107
9.5.3 修復建議 111
第10章 業務數據安全測試 112
10.1 商品支付金額篡改測試 112
10.1.1 測試原理和方法 112
10.1.2 測試過程 112
10.1.3 修復建議 115
10.2 商品訂購數量篡改測試 115
10.2.1 測試原理和方法 115
10.2.2 測試過程 115
10.2.3 修復建議 120
10.3 前端JS限制繞過測試 121
10.3.1 測試原理和方法 121
10.3.2 測試過程 121
10.3.3 修復建議 123
10.4 請求重放測試 123
10.4.1 測試原理和方法 123
10.4.2 測試過程 123
10.4.3 修復建議 125
10.5 業務上限測試 126
10.5.1 測試原理和方法 126
10.5.2 測試過程 126
10.5.3 修復建議 128
第11章 業務流程亂序測試 129
11.1 業務流程繞過測試 129
11.1.1 測試原理和方法 129
11.1.2 測試過程 129
11.1.3 修復建議 133
第12章 密碼找回模塊測試 134
12.1 驗證碼客戶端回顯測試 134
12.1.1 測試原理和方法 134
12.1.2 測試流程 134
12.1.3 修復建議 137
12.2 驗證碼暴力破解測試 137
12.2.1 測試原理和方法 137
12.2.2 測試流程 137
12.2.3 修復建議 140
12.3 接口參數賬號修改測試 140
12.3.1 測試原理和方法 140
12.3.2 測試流程 141
12.3.3 修復建議 144
12.4 Response狀態值修改測試 144
12.4.1 測試原理和方法 144
12.4.2 測試流程 144
12.4.3 修復建議 147
12.5 Session覆蓋測試 147
12.5.1 測試原理和方法 147
12.5.2 測試流程 148
12.5.3 修復建議 150
12.6 弱Token設計缺陷測試 150
12.6.1 測試原理和方法 150
12.6.2 測試流程 151
12.6.3 修復建議 153
12.7 密碼找回流程繞過測試 153
12.7.1 測試原理和方法 153
12.7.2 測試流程 154
12.7.3 修復建議 157
第13章 業務接口調用模塊測試 158
13.1 接口調用重放測試 158
13.1.1 測試原理和方法 158
13.1.2 測試過程 158
13.1.3 修復建議 160
13.2 接口調用遍歷測試 160
13.2.1 測試原理和方法 160
13.2.2 測試過程 161
13.2.3 修復建議 166
13.3 接口調用參數篡改測試 167
13.3.1 測試原理和方法 167
13.3.2 測試過程 167
13.3.3 修復建議 169
13.4 接口未授權訪問/調用測試 169
13.4.1 測試原理和方法 169
13.4.2 測試過程 170
13.4.3 修復建議 172
13.5 Callback自定義測試 172
13.5.1 測試原理和方法 172
13.5.2 測試過程 173
13.5.3 修復建議 177
13.6 WebService測試 177
13.6.1 測試原理和方法 177
13.6.2 測試過程 177
13.6.3 修復建議 184
實踐篇
第14章 賬號安全案例總結 186
14.1 賬號安全歸納 186
14.2 賬號安全相關案例 187
14.1.1 賬號密碼直接暴露在互聯網上 187
14.1.2 無限制登錄任意賬號 189
14.1.3 電子郵件賬號泄露事件 192
14.1.4 中間人攻擊 195
14.1.5 撞庫攻擊 197
14.3 防范賬號泄露的相關手段 199
第15章 密碼找回安全案例總結 200
15.1 密碼找回憑證可被暴力破解 200
15.1.1 某社交軟件任意密碼修改案例 201
15.2 密碼找回憑證直接返回給客戶端 203
15.2.1 密碼找回憑證暴露在請求鏈接中 204
15.2.2 加密驗證字符串返回給客戶端 205
15.2.3 網頁源代碼中隱藏著密保答案 206
15.2.4 短信驗證碼返回給客戶端 207
15.3 密碼重置鏈接存在弱Token 209
15.3.1 使用時間戳的md5作為密碼重置Token 209
15.3.2 使用服務器時間作為密碼重置Token 210
15.4 密碼重置憑證與用戶賬戶關聯不嚴 211
15.4.1 使用短信驗證碼找回密碼 212
15.4.2 使用郵箱Token找回密碼 213
15.5 重新綁定用戶手機或郵箱 213
15.5.1 重新綁定用戶手機 214
15.5.2 重新綁定用戶郵箱 215
15.6 服務端驗證邏輯缺陷 216
15.6.1 刪除參數繞過驗證 217
15.6.2 郵箱地址可被操控 218
15.6.3 身份驗證步驟可被繞過 219
15.7 在本地驗證服務端的返回信息――修改返回包繞過驗證 221
15.8 注冊覆蓋――已存在用戶可被重復注冊 222
15.9 Session覆蓋――某電商網站可通過Session覆蓋方式重置他人密碼 223
15.10 防范密碼找回漏洞的相關手段 225
第16章 越權訪問安全案例總結 227
16.1 平行越權 227
16.1.1 某高校教務系統用戶可越權查看其他用戶個人信息 227
16.1.2 某電商網站用戶可越權查看或修改其他用戶信息 229
16.1.3 某手機APP普通用戶可越權查看其他用戶個人信息 232
16.2 縱向越權 233
16.2.1 某辦公系統普通用戶權限越權提升為系統權限 233
16.2.2 某中學網站管理后臺可越權添加管理員賬號 235
16.2.3 某智能機頂盒低權限用戶可越權修改超級管理員配置信息 240
16.2.4 某Web防火墻通過修改用戶對應菜單類別可提升權限 244
16.3 防范越權訪問漏洞的相關手段 247
第17章 OAuth 2.0安全案例總結 248
17.1 OAuth 2.0認證原理 248
17.2 OAuth 2.0漏洞總結 250
17.2.1 某社交網站CSRF漏洞導致綁定劫持 250
17.2.2 某社區劫持授權 251
17.3 防范OAuth 2.0漏洞的相關手段 253
第18章 在線支付安全案例總結 254
18.1 某快餐連鎖店官網訂單金額篡改 254
18.2 某網上商城訂單數量篡改 256
18.3 某服務器供應商平臺訂單請求重放測試 257
18.4 某培訓機構官網訂單其他參數干擾測試 259
18.5 防范在線支付漏洞的相關手段 261