軟件安全:漏洞利用及滲透測試

軟件安全:漏洞利用及滲透測試

作者: 劉哲理 賈岩 範玲玲 汪定
出版社: 清華大學
出版在: 2022-04-01
ISBN-13: 9787302602156
ISBN-10: 7302602158





內容描述


本書全面介紹匯編語言和逆向分析基礎知識、軟件漏洞的利用及挖掘、面向Web應用的滲透測試、CTF題型及演示,配合豐富的實踐案例(視頻教程、慕課資源),是一本全面、基礎、專業的入門級教程。
全書共分四部分: 第一部分(第1~3章)為基礎篇,著重介紹匯編語言和逆向分析基礎知識,包括堆棧基礎、匯編語言、寄存器和棧幀、PE文件格式、軟件調試基礎、調試工具OllyDbg和IDA Pro等;第二部分(第4~8章)為漏洞篇,著重介紹軟件漏洞、漏洞利用和漏洞挖掘等專業知識,包括shellcode編寫、Windows安全防護、返回導向編程等漏洞利用技術、Windows系統漏洞實踐,還包括詞法分析、數據流分析、AFL模糊測試、程序切片、程序插樁、Hook、符號執行、污點分析等漏洞挖掘技術;第三部分(第9~12章)為滲透篇,針對滲透測試及Web應用安全進行詳細講解,包括滲透測試框架Metasploit、針對Windows XP系統的掃描和滲透、Web應用開發原理、Web應用的安全威脅、針對Web的滲透攻擊等,其中,基於Web應用的滲透測試對很多讀者而言很容易上手實踐,通過跟隨本書的案例可以加深對黑客攻防的認識;第四部分(第13章)為CTF篇,介紹CTF題型及部分示例,包括PWN題、逆向題和Web題等。
本書是南開大學信息安全專業、電腦專業和物聯網專業的必修課教材,建議在大二下學期使用。同時,可供對軟件安全、漏洞挖掘、黑客攻防、CTF入門有興趣的大學生、開發人員、廣大科技工作者和研究人員參考。


目錄大綱


目錄

第一部分基礎篇
第1章基本概念31.1病毒與木馬3
1.1.1病毒3
1.1.2蠕蟲4
1.1.3木馬5
1.2軟件漏洞5
1.2.1漏洞概念5
1.2.2漏洞分類8
1.2.3漏洞數據庫10
1.3滲透測試12
1.3.1基本概念12
1.3.2滲透測試方法13
1.3.3安全自律意識14
1.4實驗環境14
1.4.1VMware Workstation14
1.4.2認識Kali16
1.4.3Kali軟件包管理22
1.4.4Kali常用指令22
第2章匯編語言基礎25
2.1堆棧基礎25
2.1.1內存區域25
2.1.2堆區和棧區26
2.1.3函數調用29
2.1.4常見寄存器與棧幀31
2.2匯編語言33
2.2.1主要寄存器33
2.2.2尋址方式35
2.2.3主要指令37
2.2.4函數調用匯編示例40
第3章軟件調試基礎45
3.1二進制文件45
3.1.1PE文件格式45
3.1.2軟件加殼46
3.1.3虛擬內存47
3.1.4PE文件與虛擬內存的映射47
3.2調試分析工具52
3.2.1OllyDbg52
3.2.2IDA Pro54
3.3演示示例59
3.3.1PE文件代碼註入59
3.3.2軟件破解示例63
軟件安全: 漏洞利用及滲透測試目錄第二部分漏洞篇
第4章軟件漏洞714.1緩沖區溢出漏洞72
4.1.1基本概念72
4.1.2棧溢出漏洞72
4.1.3堆溢出漏洞78
4.1.4SEH覆蓋84
4.1.5單字節溢出87
4.2格式化字符串漏洞87
4.2.1格式化字符串的定義88
4.2.2格式化字符串漏洞的利用88
4.3整數溢出漏洞93
4.4攻擊C++虛函數96
4.5其他類型漏洞100
4.5.1註入類漏洞100
4.5.2權限類漏洞101
第5章漏洞利用103
5.1概念及示例103
5.1.1漏洞利用103
5.1.2覆蓋鄰接變量示例104
5.1.3代碼植入示例106
5.2shellcode編寫110
5.2.1提取shellcode代碼110
5.2.2shellcode編碼114
5.3Windows安全防護117
5.3.1ASLR117
5.3.2GS Stack Protection119
5.3.3DEP121
5.3.4SafeSEH121
5.3.5SEHOP122
5.4漏洞利用技術122
5.4.1地址定位技術122
5.4.2API函數自搜索技術127
5.4.3返回導向編程133
5.4.4繞過其他安全防護135
第6章漏洞利用實踐137
6.1WinDbg工具137
6.1.1WinDbg簡介137
6.1.2WinDbg基本操作命令137
6.2Windows漏洞利用160
6.2.1RET EIP覆蓋示例160
6.2.2ROP漏洞利用示例167
第7章漏洞挖掘基礎178
7.1方法概述178
7.1.1方法分類178
7.1.2符號執行179
7.1.3污點分析180
7.2詞法分析181
7.2.1基本概念181
7.2.2詞法分析漏洞挖掘實踐182
7.2.3基於IDA腳本的漏洞挖掘186
7.3數據流分析188
7.3.1基本概念188
7.3.2漏洞分析190
7.4模糊測試191
7.4.1基本概念191
7.4.2智能模糊測試193
7.4.3模糊測試工具示例194
7.4.4自動動手寫Fuzzer199
7.4.5AFL模糊測試工具201
第8章漏洞挖掘技術進階207
8.1程序切片技術207
8.1.1基礎定義207
8.1.2工作原理211
8.1.3典型方法212
8.2程序插樁技術215
8.2.1插樁概念215
8.2.2插樁分類215
8.2.3Pin插樁示例216
8.3Hook技術224
8.3.1Hook概念224
8.3.2消息Hook225
8.3.3API Hook230
8.4符號執行技術242
8.4.1基本原理242
8.4.2方法分類247
8.4.3Angr應用示例247
8.5污點分析技術252
8.5.1基本原理252
8.5.2顯式流分析254
8.5.3隱式流分析256
8.5.4檢測漏洞示例258
第三部分滲透篇
第9章滲透測試基礎2639.1滲透測試過程263
9.2滲透測試框架266
9.2.1認識Metasploit266
9.2.2常用命令267
9.3信息收集270
9.3.1被動信息收集270
9.3.2主動信息收集274
9.4掃描279
9.5漏洞利用284
9.6後滲透攻擊288
9.6.1挖掘用戶名和密碼288
9.6.2獲取控制權289
9.6.3Meterpreter命令289
第10章Web安全基礎292
10.1基礎知識292
10.1.1HTTP292
10.1.2HTML292
10.1.3JavaScript293
10.1.4HTTP會話管理294
10.2Web編程環境安裝295
10.2.1環境安裝295
10.2.2JavaScript實踐298
10.3PHP與數據庫編程302
10.3.1PHP語言302
10.3.2第一個Web程序303
10.3.3連接數據庫304
10.3.4查詢數據305
10.3.5一個完整的示例306
10.3.6Cookie實踐314
10.4Web安全威脅316
第11章Web滲透實戰基礎322
11.1文件上傳漏洞322
11.1.1WebShell322
11.1.2上傳漏洞324
11.2跨站腳本攻擊328
11.2.1腳本的含義328
11.2.2跨站腳本的含義329
11.2.3跨站腳本攻擊的危害331
11.3SQL註入漏洞336
11.3.1SQL語法336
11.3.2註入原理337
11.3.3尋找註入點339
11.3.4SQLMap340
11.3.5SQL註入實踐340
11.3.6SQL盲註347
11.3.7SQL註入防禦措施352
第12章Web滲透實戰進階354
12.1文件包含漏洞354
12.1.1文件包含354
12.1.2本地文件包含漏洞355
12.1.3遠程文件包含漏洞356
12.1.4PHP偽協議357
12.2反序列化漏洞359
12.2.1序列化與反序列化359
12.2.2PHP魔術方法360
12.2.3PHP反序列化漏洞361
12.3整站攻擊案例365
第四部分CTF篇
第13章CTF題型及演示37313.1CTF簡介373
13.2PWN題演示373
13.2.1PWN常用工具介紹374
13.2.2棧溢出379
13.2.3ROP382
13.2.4格式化字符串漏洞387
13.3逆向題演示392
13.3.1IDA逆向題示例392
13.3.2符號執行Angr解題示例393
13.3.3Pin解題示例396
13.3.4Hook解題示例403
13.3.5Z3解題示例408
13.4Web題演示413
13.4.1簽到題414
13.4.2SQL註入414
13.4.3文件上傳漏洞419
13.4.4跨站腳本攻擊422
樣題424
參考文獻425




相關書籍

網絡安全測試實驗室搭建指南 (The Network Security Test Lab: A Step-by-Step Guide)

作者 邁克爾·格雷格 (Michael Gregg)

2022-04-01

鋼索上的管理課: 駭客、災變與多變動時代的韌性管理學

作者 吳明璋

2022-04-01

It Auditing Using Controls to Protect Information Assets, Third Edition

作者 Kegerreis Mike Schiller Davis Chris

2022-04-01