滲透測試是檢驗網(wǎng)絡安全的一個重要手段,但滲透測試本身又是一項極具藝術性的工作。它涉及的知識領域很廣泛,甚至不限于計算機領域。
為了方便讀者掌握這一技術,本書全面講解了滲透測試的相關內容,包括Web滲透測試的本質——冒用身份、Web滲透測試基礎知識、常用工具介紹、簡單Web滲透測試實驗室搭建指南、面向服務器的滲透測試、面向客戶端的攻擊、面向通信渠道的攻擊、防御措施與建議。
本書內容豐富,案例眾多,通俗易懂,適合網(wǎng)絡安全專業(yè)的學生、滲透測試工程師、黑客技術愛好者學習使用。
李維峰
中國飛行試驗研究院網(wǎng)絡信息安全高級工程師,主要研究方向為網(wǎng)絡安全、滲透測試,以及網(wǎng)絡風險評估。
目錄
1 章
Web 滲透測試的本質——冒用身份 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 應用程序的區(qū)別.003
1.2 Web 應用程序概述 003
1.2.1 Web 應用程序簡介 003
1.2.2 Web 應用程序的簡單結構 004
1.3 Web 應用程序的組件及架構 005
1.3.1 Web 應用程序的組件 005
1.3.2 Web 應用程序的組件模型 005
1.3.3 Web 應用程序的架構 006
1.3.4 Web 應用程序架構的類型 007
1.3.5 Web 應用程序架構的發(fā)展趨勢 008
1.4 Web 應用程序的工作原理 .008
1.4.1 典型的 Web 應用程序的工作流程 .008
1.4.2 一個 Web 應用程序的工作流程示例 .009
1.5 滲透測試簡介 011 新手實操詳解
1.5.1 Web 應用程序滲透測試的概念 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 抽象與總結 015
1.9 漏洞的重新分類 .015
1.9.1 換個視角看漏洞 016
1.9.2 4 種攻擊手段 .017
Web 滲透測試基礎知識 019
第2章
2.1 簡明 HTTP 知識 020
2.1.1 基本概念 020
2.1.2 Apache 與 Tomcat 024
2.1.3 HTTP 的請求和響應消息 .026
2.1.4 HTTP 請求方法 .028
2.1.5 使用 Cookie 進行會話追蹤 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 的關系 .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 新手實操詳解
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 滲透測試實驗室搭建指南 .056
第4章
4.1 為什么要搭建實驗室 057
4.1.1 新手們的擔心 057
4.1.2 建設原因 057
4.1.3 虛擬化 058
4.1.4 虛擬機 058
4.2 實驗環(huán)境中的要素 .059
4.2.1 目標 059
4.2.2 從易受攻擊的目標開始 059
4.2.3 目標網(wǎng)絡升級 060
4.2.4 攻擊機 060
4.3 搭建 Kali 攻擊機 061
4.3.1 Kali Linux 簡介 .061
4.3.2 選擇 Kali Linux 的原因 062
4.3.3 安裝 Kali Linux .062
4.4 設置攻擊機 067
4.4.1 安裝并運行 OWASP Mantra .068
4.4.2 設置 Firefox 瀏覽器 068
4.5 安裝與設置虛擬機 .069
4.5.1 安裝 VirtualBox .070
4.5.2 安裝目標機鏡像 071
4.5.3 安裝一臺客戶端鏡像 072
4.5.4 設置虛擬機的通信方式 073
4.5.5 了解目標虛擬機 074
面向服務器的滲透測試 .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 進行密碼分析 .085
5.1.6 利用 DirBuster 查找文件和文件夾 087
5.1.7 利用 John the Ripper 生成字典 .089
5.1.8 服務掃描與識別 090
5.1.9 識別 Web 應用程序防火墻 .092
5.1.10 利用 ZAP 查詢文件和文件夾 094
5.2 爬取網(wǎng)站 096
5.2.1 從爬蟲結果中識別相關的文件和目錄 096
5.2.2 使用 BurpSuite 爬取網(wǎng)站 097
5.2.3 用 Burp 的中繼器重復請求 100
5.2.4 下載頁面并使用 HTTrack 進行離線分析 .103
5.2.5 使用 WebScarab .104
5.2.6 下載頁面以使用 Wget 進行離線分析 .107
5.2.7 使用 ZAP 爬蟲 109
5.3 尋找漏洞 111
5.3.1 識別跨站腳本漏洞 111
5.3.2 識別基于錯誤的 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 外部實體注入漏洞 .135
5.4.3 基本的 SQL 注入 137
5.4.4 利用操作系統(tǒng)命令注入漏洞 140
5.4.5 使用 Burp Suite 對登錄頁面進行字典攻擊 .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 服務器的漏洞 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 混合運用 191
6.3.1 誘引用戶瀏覽虛假網(wǎng)站 191
6.3.2 使用之前保存的網(wǎng)頁創(chuàng)建一個釣魚網(wǎng)站 192
6.3.3 使用 BeEF 進行攻擊 .194
6.3.4 進行一次跨站請求偽造攻擊 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 設置欺騙攻擊 .210
7.2.2 通過 Wireshark 分析 MITM 捕獲的流量.212
7.2.3 修改服務器與客戶端之間的數(shù)據(jù) 214
7.2.4 設置 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 構建恰當?shù)恼J證和會話管理機制 226
8.3 阻止跨站腳本的執(zhí)行 228
8.4 防止不安全的直接對象引用 .229
8.5 基本安全配置向導 .230
8.6 保護敏感數(shù)據(jù) 232
8.7 確保功能級別的訪問控制 233
8.8 阻止 CSRF 234
8.9 尋找第三方組件上的已知漏洞 .235
8.10 重定向驗證 .236