第一篇 世界觀安全
第1 章 我的安全世界觀...................................................................................................2
1.1 Web 安全簡史................................................................................................2
1.1.1 中國黑客簡史........................................................................................2
1.1.2 黑客技術的發展曆程..............................................................................3
1.1.3 Web 安全的興起....................................................................................5
1.2 黑帽子,白帽子.............................................................................................6
1.3 返璞歸真,揭秘安全的本質..........................................................................7
1.4 破除迷信,沒有銀彈.....................................................................................9
1.5 安全三要素..................................................................................................10
1.6 如何實施安全評估....................................................................................... 11
1.6.1 資産等級劃分......................................................................................12
1.6.2 威脅分析.............................................................................................13
1.6.3 風險分析.............................................................................................14
1.6.4 設計安全方案......................................................................................15
1.7 白帽子兵法..................................................................................................16
1.7.1 Secure By Default 原則.........................................................................16
1.7.2 縱深防禦原則......................................................................................18
1.7.3 數據與代碼分離原則............................................................................19
1.7.4 不可預測性原則...................................................................................21
1.8 小結.............................................................................................................22
(附)誰來為漏洞買單?..................................................................................23
第二篇 客戶端腳本安全
第2 章 瀏覽器安全.........................................................................................................26
2.1 同源策略......................................................................................................26
2.2 瀏覽器沙箱..................................................................................................30
2.3 惡意網址攔截..............................................................................................33
2.4 高速發展的瀏覽器安全...............................................................................36
2.5 小結.............................................................................................................39
第3 章 跨站腳本攻擊(XSS) .....................................................................................40
3.1 XSS 簡介......................................................................................................40
3.2 XSS 攻擊進階..............................................................................................43
3.2.1 初探XSS Payload.................................................................................43
3.2.2 強大的XSS Payload ............................................................................. 46
3.2.3 XSS 攻擊平颱.....................................................................................62
3.2.4 終極武器:XSS Worm..........................................................................64
3.2.5 調試JavaScript ....................................................................................73
3.2.6 XSS 構造技巧......................................................................................76
3.2.7 變廢為寶:Mission Impossible ..............................................................82
3.2.8 容易被忽視的角落:Flash XSS .............................................................85
3.2.9 真的高枕無憂嗎:JavaScript 開發框架..................................................87
3.3 XSS 的防禦..................................................................................................89
3.3.1 四兩撥韆斤:HttpOnly .........................................................................89
3.3.2 輸入檢查.............................................................................................93
3.3.3 輸齣檢查.............................................................................................95
3.3.4 正確地防禦XSS ..................................................................................99
3.3.5 處理富文本....................................................................................... 102
3.3.6 防禦DOM Based XSS......................................................................... 103
3.3.7 換個角度看XSS 的風險..................................................................... 107
3.4 小結........................................................................................................... 107
第4 章 跨站點請求僞造(CSRF) ............................................................................ 109
4.1 CSRF 簡介................................................................................................. 109
4.2 CSRF 進階................................................................................................. 111
4.2.1 瀏覽器的Cookie 策略........................................................................ 111
4.2.2 P3P 頭的副作用................................................................................. 113
4.2.3 GET? POST?...................................................................................... 116
4.2.4 Flash CSRF........................................................................................ 118
4.2.5 CSRF Worm....................................................................................... 119
4.3 CSRF 的防禦.............................................................................................. 120
4.3.1 驗證碼.............................................................................................. 120
4.3.2 Referer Check..................................................................................... 120
4.3.3 Anti CSRF Token................................................................................ 121
4.4 小結........................................................................................................... 124
第5 章 點擊劫持(ClickJacking)............................................................................. 125
5.1 什麼是點擊劫持......................................................................................... 125
5.2 Flash 點擊劫持........................................................................................... 127
5.3 圖片覆蓋攻擊............................................................................................ 129
5.4 拖拽劫持與數據竊取................................................................................. 131
5.5 ClickJacking 3.0:觸屏劫持....................................................................... 134
5.6 防禦ClickJacking....................................................................................... 136
5.6.1 frame busting ..................................................................................... 136
5.6.2 X-Frame-Options ................................................................................ 137
5.7 小結........................................................................................................... 138
第6 章 HTML 5 安全................................................................................................... 139
6.1 HTML 5 新標簽.......................................................................................... 139
6.1.1 新標簽的XSS.................................................................................... 139
6.1.2 iframe 的sandbox ............................................................................... 140
6.1.3 Link Types: noreferrer ......................................................................... 141
6.1.4 Canvas 的妙用................................................................................... 141
6.2 其他安全問題............................................................................................ 144
6.2.1 Cross-Origin Resource Sharing ............................................................. 144
6.2.2 postMessage——跨窗口傳遞消息......................................................... 146
6.2.3 Web Storage....................................................................................... 147
6.3 小結........................................................................................................... 150
第三篇 服務器端應用安全
第7 章 注入攻擊.......................................................................................................... 152
7.1 SQL 注入.................................................................................................... 152
7.1.1 盲注(Blind Injection) ...................................................................... 153
7.1.2 Timing Attack .................................................................................... 155
7.2 數據庫攻擊技巧......................................................................................... 157
7.2.1 常見的攻擊技巧................................................................................. 157
7.2.2 命令執行........................................................................................... 158
7.2.3 攻擊存儲過程.................................................................................... 164
7.2.4 編碼問題........................................................................................... 165
7.2.5 SQL Column Truncation ...................................................................... 167
7.3 正確地防禦SQL 注入................................................................................ 170
7.3.1 使用預編譯語句................................................................................. 171
7.3.2 使用存儲過程.................................................................................... 172
7.3.3 檢查數據類型.................................................................................... 172
7.3.4 使用安全函數.................................................................................... 172
7.4 其他注入攻擊............................................................................................ 173
7.4.1 XML 注入......................................................................................... 173
7.4.2 代碼注入........................................................................................... 174
7.4.3 CRLF 注入........................................................................................ 176
7.5 小結........................................................................................................... 179
第8 章 文件上傳漏洞................................................................................................... 180
8.1 文件上傳漏洞概述..................................................................................... 180
8.1.1 從FCKEditor 文件上傳漏洞談起......................................................... 181
8.1.2 繞過文件上傳檢查功能...................................................................... 182
8.2 功能還是漏洞............................................................................................ 183
8.2.1 Apache 文件解析問題......................................................................... 184
8.2.2 IIS 文件解析問題............................................................................... 185
8.2.3 PHP CGI 路徑解析問題...................................................................... 187
8.2.4 利用上傳文件釣魚............................................................................. 189
8.3 設計安全的文件上傳功能.......................................................................... 190
8.4 小結........................................................................................................... 191
第9 章 認證與會話管理............................................................................................... 192
9.1 Who am I? .................................................................................................. 192
9.2 密碼的那些事兒......................................................................................... 193
9.3 多因素認證................................................................................................ 195
9.4 Session 與認證........................................................................................... 196
9.5 Session Fixation 攻擊................................................................................. 198
9.6 Session 保持攻擊....................................................................................... 199
9.7 單點登錄(SSO)...................................................................................... 201
9.8 小結........................................................................................................... 203
第10 章 訪問控製........................................................................................................ 205
10.1 What Can I Do? ........................................................................................ 205
10.2 垂直權限管理........................................................................................... 208
10.3 水平權限管理........................................................................................... 211
10.4 OAuth 簡介.............................................................................................. 213
10.5 小結.......................................................................................................... 219
第11 章 加密算法與隨機數......................................................................................... 220
11.1 概述.......................................................................................................... 220
11.2 Stream Cipher Attack ................................................................................ 222
11.2.1 Reused Key Attack ............................................................................ 222
11.2.2 Bit-flipping Attack ............................................................................ 228
11.2.3 弱隨機IV 問題................................................................................ 230
11.3 WEP 破解................................................................................................. 232
11.4 ECB 模式的缺陷...................................................................................... 236
11.5 Padding Oracle Attack ............................................................................... 239
11.6 密鑰管理.................................................................................................. 251
11.7 僞隨機數問題........................................................................................... 253
11.7.1 弱僞隨機數的麻煩........................................................................... 253
11.7.2 時間真的隨機嗎............................................................................... 256
11.7.3 破解僞隨機數算法的種子................................................................. 257
11.7.4 使用安全的隨機數........................................................................... 265
11.8 小結.......................................................................................................... 265
(附)Understanding MD5 Length Extension Attack .................................... 267
第12 章 Web 框架安全............................................................................................... 280
12.1 MVC 框架安全......................................................................................... 280
12.2 模闆引擎與XSS 防禦.............................................................................. 282
12.3 Web 框架與CSRF 防禦............................................................................ 285
12.4 HTTP Headers 管理.................................................................................. 287
12.5 數據持久層與SQL 注入.......................................................................... 288
12.6 還能想到什麼........................................................................................... 289
12.7 Web 框架自身安全................................................................................... 289
12.7.1 Struts 2 命令執行漏洞....................................................................... 290
12.7.2 Struts 2 的問題補丁.......................................................................... 291
12.7.3 Spring MVC 命令執行漏洞................................................................ 292
12.7.4 Django 命令執行漏洞....................................................................... 293
12.8 小結.......................................................................................................... 294
第13 章 應用層拒絕服務攻擊..................................................................................... 295
13.1 DDOS 簡介............................................................................................... 295
13.2 應用層DDOS........................................................................................... 297
13.2.1 CC 攻擊........................................................................................... 297
13.2.2 限製請求頻率.................................................................................. 298
13.2.3 道高一尺,魔高一丈........................................................................ 300
13.3 驗證碼的那些事兒................................................................................... 301
13.4 防禦應用層DDOS ................................................................................... 304
13.5 資源耗盡攻擊........................................................................................... 306
13.5.1 Slowloris 攻擊.................................................................................. 306
13.5.2 HTTP POST DOS.............................................................................. 309
13.5.3 Server Limit DOS.............................................................................. 310
13.6 一個正則引發的血案:ReDOS................................................................ 311
13.7 小結.......................................................................................................... 315
第14 章 PHP 安全....................................................................................................... 317
14.1 文件包含漏洞........................................................................................... 317
14.1.1 本地文件包含.................................................................................. 319
14.1.2 遠程文件包含.................................................................................. 323
14.1.3 本地文件包含的利用技巧................................................................. 323
14.2 變量覆蓋漏洞........................................................................................... 331
14.2.1 全局變量覆蓋.................................................................................. 331
14.2.2 extract()變量覆蓋............................................................................. 334
14.2.3 遍曆初始化變量............................................................................... 334
14.2.4 import_request_variables 變量覆蓋..................................................... 335
14.2.5 parse_str()變量覆蓋.......................................................................... 335
14.3 代碼執行漏洞........................................................................................... 336
14.3.1 “危險函數”執行代碼...................................................................... 336
14.3.2 “文件寫入”執行代碼...................................................................... 343
14.3.3 其他執行代碼方式........................................................................... 344
14.4 定製安全的PHP 環境.............................................................................. 348
14.5 小結.......................................................................................................... 352
第15 章 Web Server 配置安全................................................................................... 353
15.1 Apache 安全............................................................................................. 353
15.2 Nginx 安全............................................................................................... 354
15.3 jBoss 遠程命令執行................................................................................. 356
15.4 Tomcat 遠程命令執行.............................................................................. 360
15.5 HTTP Parameter Pollution......................................................................... 363
15.6 小結.......................................................................................................... 364
第四篇 互聯網公司安全運營
第16 章 互聯網業務安全............................................................................................ 366
16.1 産品需要什麼樣的安全............................................................................ 366
16.1.1 互聯網産品對安全的需求................................................................. 367
16.1.2 什麼是好的安全方案........................................................................ 368
16.2 業務邏輯安全........................................................................................... 370
16.2.1 永遠改不掉的密碼........................................................................... 370
16.2.2 誰是大贏傢...................................................................................... 371
16.2.3 瞞天過海......................................................................................... 372
16.2.4 關於密碼取迴流程........................................................................... 373
16.3 賬戶是如何被盜的................................................................................... 374
16.3.1 賬戶被盜的途徑............................................................................... 374
16.3.2 分析賬戶被盜的原因........................................................................ 376
16.4 互聯網的垃圾........................................................................................... 377
16.4.1 垃圾的危害...................................................................................... 377
16.4.2 垃圾處理......................................................................................... 379
16.5 關於網絡釣魚........................................................................................... 380
16.5.1 釣魚網站簡介.................................................................................. 381
16.5.2 郵件釣魚......................................................................................... 383
16.5.3 釣魚網站的防控............................................................................... 385
16.5.4 網購流程釣魚.................................................................................. 388
16.6 用戶隱私保護........................................................................................... 393
16.6.1 互聯網的用戶隱私挑戰..................................................................... 393
16.6.2 如何保護用戶隱私........................................................................... 394
16.6.3 Do-Not-Track ................................................................................... 396
16.7 小結.......................................................................................................... 397
(附)麻煩的終結者........................................................................................ 398
第17 章 安全開發流程(SDL) ................................................................................. 402
17.1 SDL 簡介.................................................................................................. 402
17.2 敏捷SDL.................................................................................................. 406
17.3 SDL 實戰經驗.......................................................................................... 407
17.4 需求分析與設計階段............................................................................... 409
17.5 開發階段.................................................................................................. 415
17.5.1 提供安全的函數............................................................................... 415
17.5.2 代碼安全審計工具........................................................................... 417
17.6 測試階段.................................................................................................. 418
17.7 小結.......................................................................................................... 420
第18 章 安全運營........................................................................................................ 422
18.1 把安全運營起來....................................................................................... 422
18.2 漏洞修補流程........................................................................................... 423
18.3 安全監控.................................................................................................. 424
18.4 入侵檢測.................................................................................................. 425
18.5 緊急響應流程........................................................................................... 428
18.6 小結.......................................................................................................... 430
(附)談談互聯網企業安全的發展方嚮....................................................... 431
· · · · · · (
收起)