漏洞戰爭:軟件漏洞分析精要(修訂版)

林椏泉

  • 出版商: 電子工業
  • 出版日期: 2024-01-01
  • 售價: $774
  • 貴賓價: 9.5$735
  • 語言: 簡體中文
  • 頁數: 580
  • ISBN: 7121466716
  • ISBN-13: 9787121466717
  • 相關分類: 資訊安全
  • 立即出貨

買這商品的人也買了...

商品描述

本書系統地講解軟件漏洞分析與利用所需的各類工具、理論技術和實戰方法,主要涉及Windows和Android系統平臺。全書內容根據不同的軟件漏洞類型劃分,如堆棧溢出、沙盒逃逸、類型混淆、UAF、內核漏洞等,同時針對流行的移動安全,加入Android平臺的漏洞分析與利用。本書以精心挑選的經典漏洞為例,以分享漏洞的分析技巧和工具為主,對漏洞的成因及利用和修復方法進行詳細講解,旨在“授人以漁”。本書最大的特點是以經典漏洞作為實戰案例來講解,摒棄空頭理論,幾乎是“一本用調試器寫出來的書”。本書適合電腦相關專業的本科生、研究生,信息安全愛好者,軟件安全、移動安全相關從業人員,軟件開發與測試人員及黑客等閱讀。

目錄大綱

第1章 基礎知識 1
1.1 漏洞的相關概念 1
1.1.1 什麽是漏洞 1
1.1.2 漏洞的價值 1
1.1.3 0Day漏洞 2
1.1.4 PoC與Exploit 2
1.2 為什麽要分析漏洞 2
1.3 常用分析工具 3
1.3.1 IDA——匯編利器 3
1.3.2 OllyDbg——破解與逆向常用調試器 4
1.3.3 Immunity Debugger——漏洞分析專用調試器 4
1.3.4 WinDbg——微軟正宗調試器 5
1.3.5 x64dbg——Windows 64位調試器 6
1.3.6 Ghidra——反匯編器 7
1.3.7 GDB——Linux調試器 8
1.3.8 JEB——Android反編譯器 9
1.3.9 其他工具 10
1.4 常見的漏洞分析方法 10
1.4.1 靜態分析 10
1.4.2 動態調試 11
1.4.3 源碼分析 11
1.4.4 補丁比較 12
1.4.5 污點追蹤 12
1.5 學習資源 13
1.5.1 站點分享 13
1.5.2 書籍推薦 14
1.6 本章總結 15
第2章 棧溢出漏洞分析 16
2.1 棧溢出簡史 16
2.2 棧溢出原理 17
2.3 CVE-2010-2883 Adobe Reader TTF字體SING表棧溢出漏洞 18
2.3.1 LuckyCat攻擊事件 18
2.3.2 漏洞描述 19
2.3.3 分析環境 19
2.3.4 基於字符串定位的漏洞分析方法 20
2.3.5 樣本Exploit技術分析 21
2.3.6 樣本Shellcode惡意行為分析 27
2.3.7 漏洞修復 30
2.4 CVE-2010-3333 Microsoft RTF棧溢出漏洞 31
2.4.1 林來瘋攻擊事件 31
2.4.2 漏洞描述 32
2.4.3 分析環境 32
2.4.4 RTF文件格式 33
2.4.5 基於棧回溯的漏洞分析方法 34
2.4.6 漏洞利用原理分析 42
2.4.7 Office 2003與Office 2007 Exploit通用性研究 43
2.4.8 漏洞修復 46
2.5 CVE-2011-0104 Microsoft Excel TOOLBARDEF Record棧溢出漏洞 52
2.5.1 漏洞描述 52
2.5.2 分析環境 52
2.5.3 基於污點追蹤思路的漏洞分析方法 53
2.5.4 漏洞修復 59
2.6 阿裡旺旺ActiveX控件imageMan.dll棧溢出漏洞 60
2.6.1 漏洞描述 60
2.6.2 分析環境 61
2.6.3 針對ActiveX控件的漏洞分析方法 61
2.6.4 漏洞利用原理分析 64
2.7 CVE-2012-0158 Microsoft Office MSCOMCTL.ocx棧溢出漏洞 65
2.7.1 Lotus Blossom 行動 65
2.7.2 漏洞描述 66
2.7.3 分析環境 66
2.7.4 基於OffVis工具的Office漏洞分析方法 66
2.7.5 漏洞修復 72
2.8 本章總結 73
第3章 堆溢出漏洞分析 74
3.1 堆溢出簡史 74
3.2 堆溢出原理 75
3.3 堆調試技巧 80
3.3.1 堆尾檢查 81
3.3.2 頁堆 82
3.4 CVE-2010-2553 Microsoft Cinepak Codec CVDecompress函數堆溢出漏洞 86
3.4.1 漏洞描述 86
3.4.2 分析環境 86
3.4.3 基於HeapPage的堆漏洞分析方法 86
3.4.4 漏洞修復 101
3.5 CVE-2012-0003 Microsoft Windows Media Player winmm.dll MIDI文件堆溢出漏洞 104
3.5.1 關於“蜘蛛”漏洞攻擊包(Zhi-Zhu Exploit Pack) 104
3.5.2 漏洞描述 105
3.5.3 分析環境 105
3.5.4 MIDI文件格式 105
3.5.5 基於導圖推算的漏洞分析方法 107
3.5.6 漏洞利用原理分析 120
3.5.7 補丁比較 127
3.6 CVE-2013-0077 Microsoft DirectShow quartz.dll m2p文件堆溢出漏洞 127
3.6.1 漏洞描述 127
3.6.2 基於HTC的漏洞分析方法 127
3.6.3 漏洞修復 131
3.7 CVE-2012-1876 Internet Explorer MSHTML.dll CalculateMinMax堆溢出漏洞 132
3.7.1 在Pwn2Own黑客大賽上用於攻破IE9的漏洞 132
3.7.2 分析環境 132
3.7.3 基於HPA的漏洞分析方法 132
3.7.4 通過信息泄露實現漏洞利用 146
3.7.5 漏洞修復 155
3.8 本章總結 157
第4章 整數溢出漏洞分析 158
4.1 整數溢出簡史 158
4.2 整數溢出原理 158
4.2.1 基於棧的整數溢出 159
4.2.2 基於堆的整數溢出 160
4.3 CVE-2011-0027 Microsoft Data Access Components整數溢出漏洞 161
4.3.1 在Pwn2Own黑客大賽上用於攻破IE8的漏洞 161
4.3.2 基於堆分配記錄的漏洞分析方法 162
4.3.3 補丁比較 170
4.4 CVE-2012-0774 Adobe Reader TrueType字體整數溢出漏洞 172
4.4.1 漏洞描述 172
4.4.2 PDF文件格式與常用分析工具 172
4.4.3 基於條件記錄斷點的漏洞分析方法 176
4.4.4 補丁分析 190
4.5 CVE-2013-0750 Firefox字符串替換整數溢出漏洞 191
4.5.1 漏洞描述 191
4.5.2 基於源碼調試的漏洞分析方法 191
4.5.3 源碼比對 201
4.6 CVE-2013-2551 Internet Explorer VML COALineDashStyleArray整數溢出漏洞 202
4.6.1 在Pwn2Own黑客大賽上攻破IE10的漏洞 202
4.6.2 基於類函數定位的漏洞分析方法 202
4.6.3 利用信息泄露實現漏洞利用 217
4.7 本章總結 220
第5章 格式化字符串漏洞分析 221
5.1 格式化字符串漏洞簡史 221
5.2 格式化字符串漏洞的原理 221
5.3 CVE-2012-0809 Sudo sudo_debug函數格式化字符串漏洞 228
5.3.1 漏洞描述 228
5.3.2 通過源碼比對分析漏洞 228
5.4 CVE-2012-3569 VMware OVF Tool格式化字符串漏洞 229
5.4.1 漏洞描述 229
5.4.2 基於輸出消息的漏洞定位方法 229
5.4.3 漏洞利用原理分析 233
5.5 本章總結 236
第6章 雙重釋放漏洞分析 237
6.1 雙重釋放漏洞簡史 237
6.2 雙重釋放漏洞的原理 237
6.3 CVE-2010-3974 Windows傳真封面編輯器fxscover.exe雙重釋放漏洞 240
6.3.1 漏洞描述 240
6.3.2 通過棧回溯和堆狀態判定漏洞類型 240
6.3.3 通過補丁比較確定漏洞成因及修復方法 243
6.4 CVE-2014-0502 Adobe Flash Player 雙重釋放漏洞 245
6.4.1 GreedyWonk行動 245
6.4.2 靜態分析攻擊樣本 245
6.4.3 Shellcode自動化模擬執行 254
6.4.4 基於ROP指令地址的反向追蹤 256
6.5 本章總結 264
第7章 釋放重引用漏洞分析 265
7.1 釋放重引用(Use After Free,UAF)漏洞簡史 265
7.2 UAF漏洞的原理 265
7.3 CVE-2011-0065 Firefox mChannel UAF漏洞 268
7.3.1 漏洞描述 268
7.3.2 通過動態調試快速定位漏洞源碼 268
7.3.3 漏洞利用原理分析 276
7.3.4 源碼比對 277
7.4 CVE-2013-1347 Microsoft IE CGenericElement UAF漏洞 278
7.4.1 “水坑”攻擊事件 278
7.4.2 通過HPA快速定位漏洞對象 278
7.4.3 逆向分析IE引擎對JavaScript代碼的解析 281
7.4.4 追本溯源:探尋漏洞的根因 312
7.4.5 漏洞利用原理分析 315
7.5 CVE-2013-3346 Adobe Reader ToolButton UAF漏洞 317
7.5.1 “Epic Turla”網絡間諜攻擊行動 317
7.5.2 使用peepdf分析PDF惡意樣本 317
7.5.3 漏洞利用原理分析 326
7.6 CVE-2015-0313 Adobe Flash Player Workers ByteArray UAF漏洞 328
7.6.1 漏洞描述 328
7.6.2 分析ActionScript虛擬機源碼輔助漏洞調試 328
7.6.3 Flash JIT調試插件與符號文件 341
7.6.4 漏洞利用原理分析 342
7.6.5 漏洞修復 348
7.7 本章總結 348
第8章 數組越界訪問漏洞分析 349
8.1 數組越界與溢出的關系 349
8.2 數組越界訪問漏洞原理 349
8.3 CVE-2011-2110 Adobe Flash Player數組越界訪問漏洞 351
8.3.1 漏洞描述 351
8.3.2 解決安裝舊版Flash Player的限制問題 351
8.3.3 通過Perl腳本輔助分析樣本 352
8.3.4 搭建服務器重現漏洞場景 358
8.3.5 通過修改樣本代碼定位漏洞 360
8.3.6 通過構造信息泄露利用漏洞 363
8.3.7 通過搜索指令序列分析補丁 367
8.4 CVE-2014-0160 OpenSSL TLS數組越界訪問漏洞(“心臟滴血”) 369
8.4.1 漏洞描述 369
8.4.2 基於源碼對比與跟蹤的漏洞分析方法 370
8.4.3 利用漏洞盜取網站賬號 376
8.5 本章總結 380
第9章 內核漏洞分析 381
9.1 Windows內核漏洞漫談 381
9.2 Windows內核調試環境搭建 382
9.3 常見內核漏洞原理與利用 384
9.3.1 漏洞成因分析 384
9.3.2 漏洞利用原理分析 391
9.4 360安全衛士bregdrv.sys本地提權漏洞分析 399
9.4.1 漏洞描述 399
9.4.2 基於導出函數和I/O控制碼的追蹤分析 400
9.5 CVE-2011-2005 Windows Afd.sys本地提權漏洞 409
9.5.1 漏洞描述 409
9.5.2 從利用代碼到漏洞函數的定位分析 409
9.5.3 補丁比較 412
9.6 CVE-2013-3660 Windows win32k.sys EPATHOB指針未初始化漏洞 412
9.6.1 漏洞描述 412
9.6.2 通過IDA定義結構體輔助分析 413
9.6.3 漏洞利用原理分析 417
9.7 CVE-2014-1767 Windows AFD.sys雙重釋放漏洞(Pwn2Own 2014) 423
9.7.1 Pwnie Awards 2014“最佳提權漏洞獎”得主 423
9.7.2 基於IOCTL處理函數自動追蹤記錄的分析方法 423
9.7.3 漏洞利用原理分析 440
9.7.4 補丁分析 446
9.8 本章總結 448
第10章 Android平臺漏洞分析 449
10.1 Android平臺漏洞簡史 449
10.2 Android平臺漏洞分類 452
10.3 常見的漏洞分析方法 453
10.3.1 APK靜態分析 453
10.3.2 smali動態調試 454
10.3.3 so庫動態調試 460
10.3.4 補丁源碼比對 460
10.3.5 系統Java源碼調試 463
10.3.6 系統C/C++源碼調試 471
10.3.7 Android內核源碼調試 473
10.4 智能插座漏洞分析 476
10.4.1 漏洞描述 476
10.4.2 靜態逆向分析 477
10.4.3 利用漏洞控制網絡上的任意插座 481
10.4.4 總結 486
10.5 CVE-2013-4787 Android系統簽名漏洞 487
10.5.1 漏洞描述 487
10.5.2 Android簽名機制 487
10.5.3 漏洞重現 493
10.5.4 漏洞原理分析 498
10.5.5 漏洞修復 500
10.6 CVE-2010-1119 Android WebKit UAF漏洞 500
10.6.1 漏洞描述 500
10.6.2 漏洞利用原理分析 501
10.6.3 通過補丁源碼分析漏洞成因 508
10.7 CVE-2014-3153 Android內核Futex提權漏洞(Towelroot) 512
10.7.1 Android設備Root神器—Towelroot 512
10.7.2 通過內核源碼調試分析漏洞 512
10.7.3 漏洞利用原理分析 532
10.7.4 漏洞修復 538
10.8 本章總結 538
第11章 其他類型的漏洞分析 539
11.1 引言 539
11.2 CVE-2013-2423 JAVA Applet reflection類型混淆代碼執行漏洞 539
11.2.1 漏洞描述 539
11.2.2 類型混淆漏洞 539
11.2.3 Java安全機制 540
11.2.4 漏洞分析與利用原理 542
11.2.5 漏洞修復 546
11.2.6 2013年漏洞之王—Java 547
11.3 CVE-2014-0257 Microsoft Internet Explorer 11 dfsvc組件沙盒逃逸漏洞 548
11.3.1 漏洞描述 548
11.3.2 IE沙盒保護原理 548
11.3.3 IE沙盒攻擊面分析 553
11.3.4 CVE-2014-0257漏洞分析與利用原理 554
11.4 CVE-2014-9150 Adobe Acrobat Reader MoveFileEx IPC Hook競爭條件(沙盒逃逸)漏洞 556
11.4.1 Therac-25醫療事故 556
11.4.2 競爭條件漏洞原理 557
11.4.3 CVE-2014-9150漏洞描述 558
11.4.4 Adobe沙盒簡介 558
11.4.5 利用漏洞實現沙盒逃逸 559
11.5 本章總結 562