第1篇 基礎知識
第1章 漏洞概述
1.1 bug與漏洞
1.2 幾個令人睏惑的安全問題
1.3 漏洞挖掘、漏洞分析、漏洞利用
1.4 漏洞的公布與0 day響應
第2章 二進製文件概述
2.1 PE文件格式
2.2 虛擬內存
2.3 PE文件與虛擬內存之間的映射
第3章 必備工具
3.1 OllyDbg簡介
3.2 SoftICE簡介
3.3 WinDbg 簡介
3.4 IDA Pro簡介
3.5 二進製編輯器
3.6 虛擬機簡介
3.7 Crack二進製文件
第2篇 漏洞利用
第4章 棧溢齣利用
4.1 係統棧的工作原理
4.1.1 內存的不同用途
4.1.2 棧與係統棧
4.1.3 函數調用時發生瞭什麼
4.1.4 寄存器與函數棧幀
4.1.5 函數調用約定與相關指令
4.2 修改鄰接變量
4.2.1 修改鄰接變量的原理
4.2.2 突破密碼驗證程序
4.3 修改函數返迴地址
4.3.1 返迴地址與程序流程
4.3.2 控製程序的執行流程
4.4 代碼植入
4.4.1 代碼植入的原理
4.4.2 嚮進程中植入代碼
第5章 開發shellcode的藝術
5.1 shellcode概述
5.1.1 shellcode與exploit
5.1.2 shellcode需要解決的問題
5.2 定位shellcode
5.2.1 棧幀移位與jmp esp
5.2.2 獲取“跳闆”的地址
5.2.3 使用“跳闆”定位的exploit
5.3 緩衝區的組織
5.3.1 緩衝區的組成
5.3.2 抬高棧頂保護shellcode
5.3.3 使用其他跳轉指令
5.3.4 不使用跳轉指令
5.3.5 函數返迴地址移位
5.4 開發通用的shellcode
5.4.1 定位API的原理
5.4.2 shellcode的加載與調試
5.4.3 動態定位API地址的shellcode
5.5 shellcode編碼技術
5.5.1 為什麼要對shellcode編碼
5.5.2 會“變形”的shellcode
5.6 為shellcode“減肥”
5.6.1 shellcode瘦身大法
5.6.2 選擇恰當的hash算法
5.6.3 191個字節的bindshell
第6章 堆溢齣利用
6.1 堆的工作原理
6.1.1 Windows堆的曆史
6.1.2 堆與棧的區彆
6.1.3 堆的數據結構與管理策略
6.2 在堆中漫遊
6.2.1 堆分配函數之間的調用關係
6.2.2 堆的調試方法
6.2.3 識彆堆錶
6.2.4 堆塊的分配
6.2.5 堆塊的釋放
6.2.6 堆塊的閤並
6.3 堆溢齣利用(上)——DWORD SHOOT
6.3.1 鏈錶“拆卸”中的問題
6.3.2 在調試中體會“DWORD SHOOT”
6.4 堆溢齣利用(下)——代碼植入
6.4.1 DWORD SHOOT的利用方法
6.4.2 狙擊P.E.B中RtlEnterCritical-Section()的函數指針
6.4.3 堆溢齣利用的注意事項
第7章 Windows異常處理機製深入淺齣
7.1 S.E.H概述
7.2 在棧溢齣中利用S.E.H
7.3 在堆溢齣中利用S.E.H
7.4 挖掘Windows異常處理
7.4.1 不同級彆的S.E.H
7.4.2 綫程的異常處理
7.4.3 進程的異常處理
7.4.4 係統默認的異常處理U.E.F
7.4.5 異常處理流程的總結
7.5 V.E.H簡介
第8章 高級內存攻擊技術
8.1 狙擊異常處理機製
8.1.1 攻擊V.E.H鏈錶的頭節點
8.1.2 攻擊TEB中的S.E.H頭節點
8.1.3 攻擊U.E.F
8.1.4 攻擊PEB中的函數指針
8.2 “off by one”的利用
8.3 攻擊C++的虛函數
8.4 Heap Spray:堆與棧的協同攻擊
第9章 揭秘Windows安全機製
9.1 Service Pack 2簡介
9.2 百密一疏的S.E.H驗證
9.3 棧中的較量
9.3.1 .net中的GS安全編譯選項
9.3.2 GS機製麵臨的挑戰
9.4 重重保護下的堆
9.5 硬件方麵的安全措施
第10章 用MetaSploit開發Exploit
10.1 漏洞測試平颱MSF 簡介
10.2 入侵Windows係統
10.2.1 漏洞簡介
10.2.2 圖形界麵的漏洞測試
10.2.3 console界麵的漏洞測試
10.3 利用MSF製作shellcode
10.4 用MSF掃描“跳闆”
10.5 Ruby語言簡介
10.6 “傻瓜式”Exploit開發
10.7 用MSF發布POC
第11章 其他漏洞利用技術
11.1 格式化串漏洞
11.1.1 printf中的缺陷
11.1.2 用printf讀取內存數據
11.1.3 用printf嚮內存寫數據
11.1.4 格式化串漏洞的檢測與防範
11.2 SQL注入攻擊
11.2.1 SQL注入原理
11.2.2 攻擊PHP+MySQL網站
11.2.3 攻擊ASP+SQL Server網站
11.2.4 注入攻擊的檢測與防範
11.3 XSS攻擊
11.3.1 腳本能夠“跨站”的原因
11.3.2 XSS Reflection攻擊場景
11.3.3 Stored XSS攻擊場景
11.3.4 攻擊案例迴顧:XSS蠕蟲
11.3.5 XSS的檢測與防範
第3篇 漏洞分析
第12章 漏洞分析技術概述
12.1 漏洞分析的方法
12.2 用“白眉”在PE中漫步
12.2.1 指令追蹤技術與Paimei
12.2.2 Paimei的安裝
12.2.3 使用PE Stalker
12.2.4 迅速定位特定功能對應的代碼
12.3 補丁比較
第13章 MS06-040分析:係統入侵與蠕蟲
13.1 MS06-040簡介
13.2 漏洞分析
13.2.1 動態調試
13.2.2 靜態分析
13.3 遠程Exploit
13.3.1 RPC編程簡介
13.3.2 實現遠程exploit
13.3.3 改進exploit
13.3.4 MS06-040與蠕蟲
第14章 MS06-055分析:揭秘“網馬”
14.1 MS06-055簡介
14.1.1 矢量標記語言(VML)簡介
14.1.2 O day安全響應紀實
14.2 漏洞分析
14.3 漏洞利用
14.3.1 實踐Heap Spray技術
14.3.2 網頁木馬攻擊
第15章 MS07-060分析:Word文檔中的陰謀
15.1 MS07-060簡介
15.2 POC分析
第4篇 漏洞挖掘與軟件安全性測試
第16章 漏洞挖掘技術淺談
16.1 漏洞挖掘概述
16.2 Fuzz文件格式
16.2.1 File Fuzz簡介
16.2.2 用Paimei實踐File Fuzz
16.3 Fuzz網絡協議
16.3.1 協議測試簡介
16.3.2 SPIKE的Fuzz原理
16.3.3 SPIKE的Hello World
16.3.4 定義Block
16.3.5 生成Fuzz用例
16.4 Fuzz ActiveX
16.5 靜態代碼審計
第17章 安全的軟件生命周期
17.1 Threat Modeling
17.2 編寫安全的代碼
17.3 産品安全性測試
17.4 漏洞管理與應急響應
參考文獻
· · · · · · (
收起)