滲透測試是檢驗(yàn)網(wǎng)絡(luò)安全的一個(gè)重要手段,但滲透測試本身又是一項(xiàng)極具藝術(shù)性的工作。它涉及的知識領(lǐng)域很廣泛,甚至不限于計(jì)算機(jī)領(lǐng)域。
為了方便讀者掌握這一技術(shù),本書全面講解了滲透測試的相關(guān)內(nèi)容,包括Web滲透測試的本質(zhì)——冒用身份、Web滲透測試基礎(chǔ)知識、常用工具介紹、簡單Web滲透測試實(shí)驗(yàn)室搭建指南、面向服務(wù)器的滲透測試、面向客戶端的攻擊、面向通信渠道的攻擊、防御措施與建議。
本書內(nèi)容豐富,案例眾多,通俗易懂,適合網(wǎng)絡(luò)安全專業(yè)的學(xué)生、滲透測試工程師、黑客技術(shù)愛好者學(xué)習(xí)使用。
李維峰
中國飛行試驗(yàn)研究院網(wǎng)絡(luò)信息安全高級工程師,主要研究方向?yàn)榫W(wǎng)絡(luò)安全、滲透測試,以及網(wǎng)絡(luò)風(fēng)險(xiǎn)評估。
目錄
1 章
Web 滲透測試的本質(zhì)——冒用身份 001
1.1 Web 概述 002
1.1.1 Web 的概念 002
1.1.2 Web 簡介 002
1.1.3 Web 的中文含義 003
1.1.4 Web 與 Web 應(yīng)用程序的區(qū)別.003
1.2 Web 應(yīng)用程序概述 003
1.2.1 Web 應(yīng)用程序簡介 003
1.2.2 Web 應(yīng)用程序的簡單結(jié)構(gòu) 004
1.3 Web 應(yīng)用程序的組件及架構(gòu) 005
1.3.1 Web 應(yīng)用程序的組件 005
1.3.2 Web 應(yīng)用程序的組件模型 005
1.3.3 Web 應(yīng)用程序的架構(gòu) 006
1.3.4 Web 應(yīng)用程序架構(gòu)的類型 007
1.3.5 Web 應(yīng)用程序架構(gòu)的發(fā)展趨勢 008
1.4 Web 應(yīng)用程序的工作原理 .008
1.4.1 典型的 Web 應(yīng)用程序的工作流程 .008
1.4.2 一個(gè) Web 應(yīng)用程序的工作流程示例 .009
1.5 滲透測試簡介 011 新手實(shí)操詳解
1.5.1 Web 應(yīng)用程序滲透測試的概念 011
1.5.2 滲透測試階段劃分 011
1.5.3 滲透測試的重要性 011
1.6 模型的簡化 012
1.7 出現(xiàn)頻率較高的 Web 漏洞 012
1.8 漏洞的分類與抽象 .014
1.8.1 漏洞的分類 014
1.8.2 抽象與總結(jié) 015
1.9 漏洞的重新分類 .015
1.9.1 換個(gè)視角看漏洞 016
1.9.2 4 種攻擊手段 .017
Web 滲透測試基礎(chǔ)知識 019
第2章
2.1 簡明 HTTP 知識 020
2.1.1 基本概念 020
2.1.2 Apache 與 Tomcat 024
2.1.3 HTTP 的請求和響應(yīng)消息 .026
2.1.4 HTTP 請求方法 .028
2.1.5 使用 Cookie 進(jìn)行會(huì)話追蹤 032
2.1.6 HTTP 與 HTML .034
2.2 簡明 Web 瀏覽器知識 .034
2.2.1 Web 瀏覽器概述 034
2.2.2 Web 瀏覽器簡介 035
2.2.3 Web 瀏覽器的簡單工作過程 035
2.2.4 使用 Cookie 保存信息 036
2.2.5 Web 瀏覽器的工作原理 036
2.3 簡明 SSL/TLS 知識 .040
2.3.1 SSL 的概念 040
2.3.2 SSL/TLS 功能簡介 040
2.3.3 為什么 SSL/TLS 如此重要 .040
2.3.4 SSL 與 TLS 的關(guān)系 .041
2.3.5 SSL 是否還在更新 041
2.3.6 SSL 證書的概念 041
2.3.7 SSL 證書的類型 041
2.3.8 SSL/TLS 密碼套件 042
常用工具介紹 .044
第3章
3.1 工具的分類 045
3.2 掃描類 .045
3.2.1 Nmap 045
3.2.2 Nikto .046
3.2.3 Wapiti .046
3.2.4 w3af 047
3.2.5 Vega 047
3.2.6 Wget .047
3.2.7 HTTrack .048
3.2.8 WebScarab 048
3.2.9 SSLScan .049
3.2.10 Wireshark .050
3.3 破解類 .050
3.3.1 John the Ripper .050
3.3.2 hashcat 051 新手實(shí)操詳解
3.3.3 BeEF .051
3.3.4 SQLMap .051
3.3.5 THC-Hydra .052
3.4 綜合類 .053
3.4.1 Firefox 瀏覽器 .053
3.4.2 Metasploit .054
3.4.3 Burp Suite .054
3.4.4 ZAP 055
簡單 Web 滲透測試實(shí)驗(yàn)室搭建指南 .056
第4章
4.1 為什么要搭建實(shí)驗(yàn)室 057
4.1.1 新手們的擔(dān)心 057
4.1.2 建設(shè)原因 057
4.1.3 虛擬化 058
4.1.4 虛擬機(jī) 058
4.2 實(shí)驗(yàn)環(huán)境中的要素 .059
4.2.1 目標(biāo) 059
4.2.2 從易受攻擊的目標(biāo)開始 059
4.2.3 目標(biāo)網(wǎng)絡(luò)升級 060
4.2.4 攻擊機(jī) 060
4.3 搭建 Kali 攻擊機(jī) 061
4.3.1 Kali Linux 簡介 .061
4.3.2 選擇 Kali Linux 的原因 062
4.3.3 安裝 Kali Linux .062
4.4 設(shè)置攻擊機(jī) 067
4.4.1 安裝并運(yùn)行 OWASP Mantra .068
4.4.2 設(shè)置 Firefox 瀏覽器 068
4.5 安裝與設(shè)置虛擬機(jī) .069
4.5.1 安裝 VirtualBox .070
4.5.2 安裝目標(biāo)機(jī)鏡像 071
4.5.3 安裝一臺客戶端鏡像 072
4.5.4 設(shè)置虛擬機(jī)的通信方式 073
4.5.5 了解目標(biāo)虛擬機(jī) 074
面向服務(wù)器的滲透測試 .078
第5章
5.1 偵查.079
5.1.1 查看源代碼 079
5.1.2 使用 Firebug 分析并改變基本行為 .080
5.1.3 獲取和修改 Cookie .082
5.1.4 利用 robots.txt 083
5.1.5 利用 CeWL 進(jìn)行密碼分析 .085
5.1.6 利用 DirBuster 查找文件和文件夾 087
5.1.7 利用 John the Ripper 生成字典 .089
5.1.8 服務(wù)掃描與識別 090
5.1.9 識別 Web 應(yīng)用程序防火墻 .092
5.1.10 利用 ZAP 查詢文件和文件夾 094
5.2 爬取網(wǎng)站 096
5.2.1 從爬蟲結(jié)果中識別相關(guān)的文件和目錄 096
5.2.2 使用 BurpSuite 爬取網(wǎng)站 097
5.2.3 用 Burp 的中繼器重復(fù)請求 100
5.2.4 下載頁面并使用 HTTrack 進(jìn)行離線分析 .103
5.2.5 使用 WebScarab .104
5.2.6 下載頁面以使用 Wget 進(jìn)行離線分析 .107
5.2.7 使用 ZAP 爬蟲 109
5.3 尋找漏洞 111
5.3.1 識別跨站腳本漏洞 111
5.3.2 識別基于錯(cuò)誤的 SQL 注入 114
5.3.3 識別 SQL 盲注 116
5.3.4 從 Cookie 中識別漏洞 117
5.3.5 尋找文件包含漏洞 118
5.3.6 使用 Hackbar 附加組件簡化參數(shù)探測 120
5.3.7 使用瀏覽器插件攔截和修改請求 122
5.3.8 使用 Burp Suite 查看和更改請求 .124
5.3.9 使用 SSLScan 獲取 SSL 和 TLS 信息 .126
5.3.10 識別 POODLE 漏洞 129
5.3.11 使用 ZAP 查看和更改請求 130
5.4 基本破解 132
5.4.1 濫用文件包含和上傳 132
5.4.2 利用 XML 外部實(shí)體注入漏洞 .135
5.4.3 基本的 SQL 注入 137
5.4.4 利用操作系統(tǒng)命令注入漏洞 140
5.4.5 使用 Burp Suite 對登錄頁面進(jìn)行字典攻擊 .143
5.4.6 使用 THC-Hydra 暴力破解密碼 .148
5.4.7 使用 SQLMap 尋找和破解 SQL 注入漏洞 .150
5.4.8 使用 Metasploit 獲取 Tomcat 的密碼 .154
5.4.9 利用 Tomcat Manager 執(zhí)行代碼 .156
5.5 高級破解 158
5.5.1 在 Exploit-DB 中搜索 Web 服務(wù)器的漏洞 159
5.5.2 破解 Heartbleed 漏洞 161
5.5.3 破解 SQL 盲注漏洞 163
5.5.4 用 Shellshock 執(zhí)行命令 169
5.5.5 使用 SQLMap 獲取數(shù)據(jù)庫信息 .172
面向客戶端的攻擊 176
第6章
6.1 手工攻擊 177
6.2 利用工具 180
6.2.1 利用 BeEF 破解 XSS 180
6.2.2 使用 John the Ripper 通過字典攻擊破解密碼的 hash 值 .184
6.2.3 使用 oclHashcat/cudaHashcat 暴力破解密碼的 hash 值 .186
6.2.4 使用 SET 創(chuàng)建密碼收集器 .187
6.3 混合運(yùn)用 191
6.3.1 誘引用戶瀏覽虛假網(wǎng)站 191
6.3.2 使用之前保存的網(wǎng)頁創(chuàng)建一個(gè)釣魚網(wǎng)站 192
6.3.3 使用 BeEF 進(jìn)行攻擊 .194
6.3.4 進(jìn)行一次跨站請求偽造攻擊 197
6.3.5 使用 Metasploit 創(chuàng)建反向 Shell 并捕獲其連接 .201
6.3.6 使用 Metasploit 中的 browser_autpwn2 攻擊客戶端 205
面向通信渠道的攻擊 .208
第7章
7.1 嗅探與嗅探器 209
7.2 中間人攻擊 209
7.2.1 使用 Ettercap 設(shè)置欺騙攻擊 .210
7.2.2 通過 Wireshark 分析 MITM 捕獲的流量.212
7.2.3 修改服務(wù)器與客戶端之間的數(shù)據(jù) 214
7.2.4 設(shè)置 SSL MITM 攻擊環(huán)境 .217
7.2.5 使用 SSLsplit 獲取 SSL 數(shù)據(jù) .219
7.2.6 執(zhí)行 DNS 欺騙和重定向流量 221
防御措施與建議 224
第8章
8.1 阻止注入攻擊 225
8.2 構(gòu)建恰當(dāng)?shù)恼J(rèn)證和會(huì)話管理機(jī)制 226
8.3 阻止跨站腳本的執(zhí)行 228
8.4 防止不安全的直接對象引用 .229
8.5 基本安全配置向?qū)?.230
8.6 保護(hù)敏感數(shù)據(jù) 232
8.7 確保功能級別的訪問控制 233
8.8 阻止 CSRF 234
8.9 尋找第三方組件上的已知漏洞 .235
8.10 重定向驗(yàn)證 .236