Web 安全漏洞及代碼審計 (微課版)
內容描述
代碼審計是企業安全從業人員必需的基本技能。在企業安全操作、滲透測試、漏洞研究等各項工作中,都需要進行代碼審計。本書圍繞代碼審計前的準備工作、PHP代碼審計中的流程和常見漏洞審計、漏洞的審計方法等環節精心組織內容,通過應用案例,讓讀者深刻體會代碼審計的重要作用。本書內容分為3部分。第1部分介紹代碼審計前的準備工作,包括第1章“環境配置”和第2章“工具使用”;第2部分介紹PHP代碼審計中的流程和常見漏洞審計,包括第3章“審計流程”;第3部分介紹漏洞的審計方法,包括第4章“SQL註入漏洞審計”、第5章“跨站腳本攻擊漏洞審計”、第6章“跨站請求偽造漏洞審計”、第7章“服務端請求偽造漏洞審計”、第8章“XML外部實體註入漏洞審計”、第9章“代碼執行漏洞審計”、第10章“命令執行漏洞審計”、第11章“反序列化漏洞審計”、第12章“任意文件上傳漏洞審計”、第13章“文件包含漏洞審計”、第14章“文件操作類漏洞審計”、第15章“其他類型漏洞審計”和第16章“框架漏洞審計”。本書配有微課視頻、源代碼、電子課件、教案等教學資源,讀者可以登錄華信教育資源網(www.hxedu.com.cn)註冊後免費進行下載。本書既可以作為高等院校、高等職業院校“網絡與信息安全”課程的教材,也可以作為相關從業人員的參考書。
目錄大綱
第1部分
第1章 環境配置 1
1.1 知識準備 1
1.1.1 代碼編輯工具 1
1.1.2 WAMP/WNMP環境搭建 3
1.1.3 LAMP環境搭建 4
1.1.4 PHP核心配置 4
1.2 實戰演練――Windows環境部署 8
1.2.1 安裝運行 8
1.2.2 目錄結構 9
1.2.3 主界面 9
1.2.4 切換版本 10
1.2.5 站點配置 10
1.2.6 修改hosts域名解析文件 11
1.2.7 PHP擴展設置 11
1.2.8 MySQL管理 11
1.2.9 phpMyAdmin 12
1.3 強化訓練――Linux環境部署 13
1.3.1 一鍵安裝腳本 13
1.3.2 安裝部署 13
1.3.3 相關操作 14
1.3.4 訪問面板 14
1.3.5 軟件管理 14
1.3.6 數據庫 15
1.3.7 部署服務 16
1.4 課後實訓 16
第2章 工具使用 17
2.1 知識準備 17
2.1.1 代碼編輯工具 17
2.1.2 代碼審計工具 19
2.1.3 輔助驗證工具 28
2.2 實戰演練――Seay源代碼審計系統審計DVWA 36
2.2.1 DVWA簡介 36
2.2.2 環境搭建 36
2.2.3 使用工具審計 40
2.3 強化訓練――RIPS審計DVWA 42
2.3.1 RIPS環境的本地搭建 42
2.3.2 使用工具審計 43
2.4 課後實訓 45
第2部分
第3章 審計流程 46
3.1 知識準備 46
3.1.1 尋找漏洞簽名 46
3.1.2 功能點定向審計 47
3.1.3 通讀全文 47
3.2 實戰演練 47
3.2.1 尋找漏洞簽名 47
3.2.2 功能點定向審計 49
3.2.3 通讀全文 50
3.3 強化訓練 52
3.3.1 暴力破解 52
3.3.2 命令注入 57
3.3.3 跨站請求偽造 62
3.3.4 文件包含 68
3.3.5 文件上傳 72
3.3.6 SQL注入 76
3.3.7 SQL盲注 85
3.3.8 脆弱會話 92
3.3.9 反射型XSS 96
3.3.10 存儲型XSS 99
3.3.11 不安全的驗證流程 103
3.4 課後實訓 114
第3部分
第4章 SQL注入漏洞審計 115
4.1 知識準備 115
4.1.1 漏洞介紹 115
4.1.2 漏洞危害 115
4.1.3 審計思路 116
4.2 實戰演練――SQL注入漏洞 116
4.2.1 普通注入 116
4.2.2 寬字節注入 117
4.2.3 二次注入 119
4.3 強化訓練――審計實戰 121
4.3.1 環境搭建 121
4.3.2 漏洞分析 122
4.3.3 漏洞利用 124
4.4 課後實訓 125
第5章 跨站腳本攻擊漏洞審計 126
5.1 知識準備 126
5.1.1 漏洞介紹 126
5.1.2 漏洞危害 127
5.1.3 審計思路 127
5.2 實戰演練――跨站腳本攻擊漏洞 127
5.2.1 反射型XSS 127
5.2.2 存儲型XSS 128
5.2.3 DOM型XSS 128
5.3 強化訓練――審計實戰 129
5.3.1 環境搭建 129
5.3.2 漏洞分析 131
5.3.3 漏洞利用 132
5.4 課後實訓 134
第6章 跨站請求偽造漏洞審計 135
6.1 知識準備 135
6.1.1 漏洞介紹 135
6.1.2 漏洞危害 135
6.1.3 審計思路 136
6.2 實戰演練――跨站請求偽造漏洞 136
6.3 強化訓練――審計實戰 138
6.3.1 環境搭建 138
6.3.2 漏洞分析 140
6.3.3 漏洞利用 140
6.4 課後實訓 142
第7章 服務端請求偽造漏洞審計 143
7.1 知識準備 143
7.1.1 漏洞介紹 143
7.1.2 漏洞危害 143
7.1.3 審計思路 144
7.2 實戰演練――服務端請求偽造漏洞 144
7.2.1 file_get_contents() 144
7.2.2 fopen() 144
7.2.3 cURL 145
7.3 強化訓練――審計實戰 146
7.3.1 環境搭建 146
7.3.2 漏洞分析 149
7.3.3 漏洞利用 150
7.4 課後實訓 150
第8章 XML外部實體注入漏洞審計 151
8.1 知識準備 151
8.1.1 漏洞介紹 151
8.1.2 基礎知識 151
8.1.3 審計思路 152
8.2 實戰演練――XML外部實體注入漏洞 153
8.2.1 simplexml_load_string() 153
8.2.2 DOM解析器函數 154
8.2.3 SimpleXMLElement() 154
8.3 強化訓練――審計實戰 155
8.3.1 環境搭建 155
8.3.2 漏洞分析 157
8.3.3 漏洞利用 159
8.4 課後實訓 159
第9章 代碼執行漏洞審計 160
9.1 知識準備 160
9.1.1 漏洞介紹 160
9.1.2 漏洞危害 160
9.1.3 審計思路 161
9.2 實戰演練――代碼執行漏洞 161
9.2.1 eval()和assert() 161
9.2.2 回調函數 161
9.2.3 動態執行函數 163
9.2.4 preg_replace() 163
9.3 強化訓練――審計實戰 164
9.3.1 環境搭建 164
9.3.2 漏洞分析 166
9.3.3 漏洞利用 167
9.4 課後實訓 168
第10章 命令執行漏洞審計 169
10.1 知識準備 169
10.1.1 漏洞介紹 169
10.1.2 漏洞危害 169
10.1.3 審計思路 170
10.2 實戰演練――命令執行漏洞 170
10.2.1 system() 170
10.2.2 exec() 170
10.2.3 反引號`和shell_exec() 171
10.2.4 popen()和proc_open() 171
10.3 強化訓練――審計實戰 172
10.3.1 環境搭建 172
10.3.2 漏洞分析 175
10.3.3 漏洞利用 175
10.4 課後實訓 177
第11章 反序列化漏洞審計 178
11.1 知識準備 178
11.1.1 漏洞介紹 178
11.1.2 基礎知識 178
11.1.3 審計思路 179
11.2 實戰演練――反序列化漏洞 180
11.2.1 serialize() 180
11.2.2 unserialize() 180
11.3 強化訓練――審計實戰 181
11.3.1 環境搭建 181
11.3.2 漏洞分析 182
11.3.3 構造PoC 184
11.3.4 漏洞利用 186
11.4 課後實訓 188
第12章 任意文件上傳漏洞審計 189
12.1 知識準備 189
12.1.1 漏洞介紹 189
12.1.2 漏洞危害 189
12.1.3 審計思路 189
12.2 實戰演練――任意文件上傳漏洞 190
12.3 強化訓練――審計實戰 191
12.3.1 環境搭建 191
12.3.2 漏洞分析 193
12.3.3 漏洞利用 194
12.4 課後實訓 195
第13章 文件包含漏洞審計 196
13.1 知識準備 196
13.1.1 漏洞介紹 196
13.1.2 漏洞危害 196
13.1.3 審計思路 197
13.1.4 漏洞利用 197
13.2 實戰演練――文件包含漏洞 197
13.2.1 本地文件包含 198
13.2.2 遠程文件包含 198
13.3 強化訓練――審計實戰 199
13.3.1 環境搭建 199
13.3.2 漏洞分析 200
13.3.3 漏洞利用 201
13.4 課後實訓 202
第14章 文件操作類漏洞審計 203
14.1 知識準備 203
14.1.1 漏洞介紹 203
14.1.2 目錄穿越漏洞介紹 203
14.1.3 審計思路 204
14.2 實戰演練――任意文件讀取/修改漏洞 204
14.2.1 漏洞分析 204
14.2.2 漏洞利用 204
14.3 強化訓練――任意文件刪除漏洞 206
14.3.1 漏洞分析 206
14.3.2 漏洞利用 207
14.4 課後實訓 208
第15章 其他類型漏洞審計 209
15.1 知識準備 209
15.1.1 系統重裝漏洞 209
15.1.2 越權漏洞 210
15.2 實戰演練――系統重裝漏洞 210
15.2.1 環境搭建 210
15.2.2 漏洞分析 212
15.2.3 漏洞利用 213
15.3 強化訓練――越權漏洞 215
15.3.1 環境搭建 215
15.3.2 漏洞分析 217
15.3.3 漏洞利用 218
15.4 課後實訓 220
第16章 框架漏洞審計 221
16.1 知識準備 221
16.1.1 框架理解 221
16.1.2 MVC架構模式 221
16.1.3 常見框架介紹 222
16.2 實戰演練――框架使用 222
16.3 強化訓練――ThinkPHP遠程代碼執行漏洞 224
16.3.1 漏洞影響 224
16.3.2 漏洞分析 224
16.3.3 漏洞利用 227
16.4 課後實訓 228
作者介紹
郭錫泉,男,副教授,博士研究生學歷。
曾任教於廣州番禺職業技術學院,先任教於清遠職業技術學院信息與創意學院,副院長職務。
現任清遠市網絡空間安全工程技術研究開發中心負責人。
帶領清遠職業技術學院信息安全技術與應用研究團隊,獲國家信息安全漏洞共享平台(CNVD)原創漏洞證書108項、雲計算與網絡安全相關的專利和軟件著作權5項;獲***教學成果二等獎1項;指導學生參加廣東省高職院校職業技能競賽計算機網絡應用賽項獲一等獎2項。
曾參與廣東省科技計劃項目“基於專用協議棧的流過濾網絡防火牆研製”、廣東省-教育部產學研結合項目“基於新一代網絡的入侵檢測系統產業化研究”等項目,發表網絡安全、信息安全技術與管理領域的論文25篇。