滲透測(cè)試是檢驗(yàn)網(wǎng)絡(luò)安全的一個(gè)重要手段,但滲透測(cè)試本身又是一項(xiàng)極具藝術(shù)性的工作。它涉及的知識(shí)領(lǐng)域很廣泛,甚至不限于計(jì)算機(jī)領(lǐng)域。
為了方便讀者掌握這一技術(shù),本書(shū)全面講解了滲透測(cè)試的相關(guān)內(nèi)容,包括Web滲透測(cè)試的本質(zhì)——冒用身份、Web滲透測(cè)試基礎(chǔ)知識(shí)、常用工具介紹、簡(jiǎn)單Web滲透測(cè)試實(shí)驗(yàn)室搭建指南、面向服務(wù)器的滲透測(cè)試、面向客戶(hù)端的攻擊、面向通信渠道的攻擊、防御措施與建議。
本書(shū)內(nèi)容豐富,案例眾多,通俗易懂,適合網(wǎng)絡(luò)安全專(zhuān)業(yè)的學(xué)生、滲透測(cè)試工程師、黑客技術(shù)愛(ài)好者學(xué)習(xí)使用。
李維峰
中國(guó)飛行試驗(yàn)研究院網(wǎng)絡(luò)信息安全高級(jí)工程師,主要研究方向?yàn)榫W(wǎng)絡(luò)安全、滲透測(cè)試,以及網(wǎng)絡(luò)風(fēng)險(xiǎn)評(píng)估。
目錄
1 章
Web 滲透測(cè)試的本質(zhì)——冒用身份 001
1.1 Web 概述 002
1.1.1 Web 的概念 002
1.1.2 Web 簡(jiǎn)介 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)用程序簡(jiǎn)介 003
1.2.2 Web 應(yīng)用程序的簡(jiǎn)單結(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)的類(lèi)型 007
1.3.5 Web 應(yīng)用程序架構(gòu)的發(fā)展趨勢(shì) 008
1.4 Web 應(yīng)用程序的工作原理 .008
1.4.1 典型的 Web 應(yīng)用程序的工作流程 .008
1.4.2 一個(gè) Web 應(yīng)用程序的工作流程示例 .009
1.5 滲透測(cè)試簡(jiǎn)介 011 新手實(shí)操詳解
1.5.1 Web 應(yīng)用程序滲透測(cè)試的概念 011
1.5.2 滲透測(cè)試階段劃分 011
1.5.3 滲透測(cè)試的重要性 011
1.6 模型的簡(jiǎn)化 012
1.7 出現(xiàn)頻率較高的 Web 漏洞 012
1.8 漏洞的分類(lèi)與抽象 .014
1.8.1 漏洞的分類(lèi) 014
1.8.2 抽象與總結(jié) 015
1.9 漏洞的重新分類(lèi) .015
1.9.1 換個(gè)視角看漏洞 016
1.9.2 4 種攻擊手段 .017
Web 滲透測(cè)試基礎(chǔ)知識(shí) 019
第2章
2.1 簡(jiǎn)明 HTTP 知識(shí) 020
2.1.1 基本概念 020
2.1.2 Apache 與 Tomcat 024
2.1.3 HTTP 的請(qǐng)求和響應(yīng)消息 .026
2.1.4 HTTP 請(qǐng)求方法 .028
2.1.5 使用 Cookie 進(jìn)行會(huì)話追蹤 032
2.1.6 HTTP 與 HTML .034
2.2 簡(jiǎn)明 Web 瀏覽器知識(shí) .034
2.2.1 Web 瀏覽器概述 034
2.2.2 Web 瀏覽器簡(jiǎn)介 035
2.2.3 Web 瀏覽器的簡(jiǎn)單工作過(guò)程 035
2.2.4 使用 Cookie 保存信息 036
2.2.5 Web 瀏覽器的工作原理 036
2.3 簡(jiǎn)明 SSL/TLS 知識(shí) .040
2.3.1 SSL 的概念 040
2.3.2 SSL/TLS 功能簡(jiǎn)介 040
2.3.3 為什么 SSL/TLS 如此重要 .040
2.3.4 SSL 與 TLS 的關(guān)系 .041
2.3.5 SSL 是否還在更新 041
2.3.6 SSL 證書(shū)的概念 041
2.3.7 SSL 證書(shū)的類(lèi)型 041
2.3.8 SSL/TLS 密碼套件 042
常用工具介紹 .044
第3章
3.1 工具的分類(lèi) 045
3.2 掃描類(lèi) .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 破解類(lèi) .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 綜合類(lèi) .053
3.4.1 Firefox 瀏覽器 .053
3.4.2 Metasploit .054
3.4.3 Burp Suite .054
3.4.4 ZAP 055
簡(jiǎn)單 Web 滲透測(cè)試實(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)開(kāi)始 059
4.2.3 目標(biāo)網(wǎng)絡(luò)升級(jí) 060
4.2.4 攻擊機(jī) 060
4.3 搭建 Kali 攻擊機(jī) 061
4.3.1 Kali Linux 簡(jiǎn)介 .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 安裝一臺(tái)客戶(hù)端鏡像 072
4.5.4 設(shè)置虛擬機(jī)的通信方式 073
4.5.5 了解目標(biāo)虛擬機(jī) 074
面向服務(wù)器的滲透測(cè)試 .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ù)掃描與識(shí)別 090
5.1.9 識(shí)別 Web 應(yīng)用程序防火墻 .092
5.1.10 利用 ZAP 查詢(xún)文件和文件夾 094
5.2 爬取網(wǎng)站 096
5.2.1 從爬蟲(chóng)結(jié)果中識(shí)別相關(guān)的文件和目錄 096
5.2.2 使用 BurpSuite 爬取網(wǎng)站 097
5.2.3 用 Burp 的中繼器重復(fù)請(qǐng)求 100
5.2.4 下載頁(yè)面并使用 HTTrack 進(jìn)行離線分析 .103
5.2.5 使用 WebScarab .104
5.2.6 下載頁(yè)面以使用 Wget 進(jìn)行離線分析 .107
5.2.7 使用 ZAP 爬蟲(chóng) 109
5.3 尋找漏洞 111
5.3.1 識(shí)別跨站腳本漏洞 111
5.3.2 識(shí)別基于錯(cuò)誤的 SQL 注入 114
5.3.3 識(shí)別 SQL 盲注 116
5.3.4 從 Cookie 中識(shí)別漏洞 117
5.3.5 尋找文件包含漏洞 118
5.3.6 使用 Hackbar 附加組件簡(jiǎn)化參數(shù)探測(cè) 120
5.3.7 使用瀏覽器插件攔截和修改請(qǐng)求 122
5.3.8 使用 Burp Suite 查看和更改請(qǐng)求 .124
5.3.9 使用 SSLScan 獲取 SSL 和 TLS 信息 .126
5.3.10 識(shí)別 POODLE 漏洞 129
5.3.11 使用 ZAP 查看和更改請(qǐng)求 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 對(duì)登錄頁(yè)面進(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 高級(jí)破解 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ù)庫(kù)信息 .172
面向客戶(hù)端的攻擊 176
第6章
6.1 手工攻擊 177
6.2 利用工具 180
6.2.1 利用 BeEF 破解 XSS 180
6.2.2 使用 John the Ripper 通過(guò)字典攻擊破解密碼的 hash 值 .184
6.2.3 使用 oclHashcat/cudaHashcat 暴力破解密碼的 hash 值 .186
6.2.4 使用 SET 創(chuàng)建密碼收集器 .187
6.3 混合運(yùn)用 191
6.3.1 誘引用戶(hù)瀏覽虛假網(wǎng)站 191
6.3.2 使用之前保存的網(wǎng)頁(yè)創(chuàng)建一個(gè)釣魚(yú)網(wǎng)站 192
6.3.3 使用 BeEF 進(jìn)行攻擊 .194
6.3.4 進(jìn)行一次跨站請(qǐng)求偽造攻擊 197
6.3.5 使用 Metasploit 創(chuàng)建反向 Shell 并捕獲其連接 .201
6.3.6 使用 Metasploit 中的 browser_autpwn2 攻擊客戶(hù)端 205
面向通信渠道的攻擊 .208
第7章
7.1 嗅探與嗅探器 209
7.2 中間人攻擊 209
7.2.1 使用 Ettercap 設(shè)置欺騙攻擊 .210
7.2.2 通過(guò) Wireshark 分析 MITM 捕獲的流量.212
7.2.3 修改服務(wù)器與客戶(hù)端之間的數(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 防止不安全的直接對(duì)象引用 .229
8.5 基本安全配置向?qū)?.230
8.6 保護(hù)敏感數(shù)據(jù) 232
8.7 確保功能級(jí)別的訪問(wèn)控制 233
8.8 阻止 CSRF 234
8.9 尋找第三方組件上的已知漏洞 .235
8.10 重定向驗(yàn)證 .236