內容簡介
《Web安全測試》內容簡介: 《Web安全測試》中的秘訣所覆蓋的基礎知識包括了從觀察客戶端和伺服器之間的訊息到使用腳本完成登錄並執行Web套用功能的多階段測試。在《Web安全測試》的最後,你將能夠建立精確定位到Ajax函式的測試,以及適用於常見懷疑對象(跨站式腳本和注入攻擊)的大型多級測試。
作者簡介
Paco Hope,是Cigital公司的一名技術經理,《Mastering FreeBsD and 0penBsDsecurity》 (由O’Reilly出版)的合著者之一。他也發表過有關誤用、濫用案例和PKI的文章。他曾被邀請到會議就軟體安全需求、Web套用安全和嵌入式系統安全等話題發表演講。在Cigital,他曾擔任MasterCard Internationa!在安全策略方面的主題專家,而且曾協助一家世界500強的服務業公司編寫軟體安全策略。他也為軟體開發和測試人員提供軟體安全基礎方面的培訓。他還曾為博彩業和移動通信行業中的幾家公司提出過軟體安全方面的建議。Paco曾在威廉瑪麗學院主修計算機科學和英語,並從維吉尼亞大學獲得計算機科學方面的理學碩士學位。
Ben Waltller,是Cigital公司的一名顧問,Edit C00kies工具的開發者之一。他同時參與標準質量保證和軟體安全方面的工作。他日復一日地設計和執行測試一一因此他理解忙碌的QA領域對簡單秘訣的需求。他也曾對開放式Web應用程式安全項目(0WAsP)的成員就w曲套用測試工具發表過演講還贏得榮譽。
作品目錄
序 1
前言 3
第1章 緒論 13
1.1 什麼是安全測試 13
1.2 什麼是Web套用 17
1.3 Web套用基礎 21
1.4 Web套用安全測試 25
1.5 方法才是重點 26
第2章 安裝免費工具 29
2.1 安裝Firefox 29
2.2 安裝Firefox擴展 30
2.3 安裝Firebug 31
2.4 安裝OWASP的WebScarab 32
2.5 在Windows上安裝Perl及其軟體包 33
2.6 在Linux, Unix或OS X上安裝Perl和使用CPAN 34
2.7 安裝CAL9000 35
2.8 安裝ViewState Decoder 36
2.9 安裝cURL 36
2.10 安裝Pornzilla 37
2.11 安裝Cygwin 38
2.12 安裝Nikto 2 39
2.13 安裝Burp Suite 40
2.14 安裝Apache HTTP Server 41
第3章 基本觀察 43
3.1 查看網頁的HTML原始碼 44
3.2 查看原始碼,高級功能 45
3.3 使用Firebug觀察實時的請求頭 48
3.4 使用WebScarab觀察實時的POST數據 52
3.5 查看隱藏表單域 55
3.6 使用TamperData觀察實時的回響頭 56
3.7 高亮顯示JavaScript和注釋 59
3.8 檢測JavaScript事件 60
3.9 修改特定的元素屬性 61
3.10 動態跟蹤元素屬性 63
3.11 結論 65
第4章 面向Web的數據編碼 66
4.1 辨別二進制數據表示 67
4.2 使用Base-64 69
4.3 在網頁中轉換Base-36數字 71
4.4 在Perl中使用Base-36 71
4.5 使用以URL方式編碼的數據 72
4.6 使用HTML實體數據 74
4.7 計算散列值 76
4.8 辨別時間格式 78
4.9 以編程方式對時間值進行編碼 80
4.11 解碼多重編碼 83
第5章 篡改輸入 85
5.1 截獲和修改POST請求 86
5.2 繞過輸入限制 89
5.3 篡改URL 90
5.4 自動篡改URL 93
5.5 測試對URL長度的處理 94
5.6 編輯Cookie 96
5.7 偽造瀏覽器頭信息 99
5.8 上傳帶有惡意檔案名稱的檔案 101
5.9 上傳大檔案 104
5.10 上傳惡意XML實體檔案 105
5.11 上傳惡意XML結構 107
5.12 上傳惡意ZIP檔案 109
5.13 上傳樣例病毒檔案 110
5.14 繞過用戶界面的限制 111
第6章 自動化批量掃描 114
6.1 使用WebScarab爬行網站 115
6.2 將爬行結果轉換為清單 117
6.3 減少要測試的URL 120
6.4 使用電子表格程式來精簡列表 120
6.5 使用LWP對網站做鏡像 121
6.6 使用wget對網站做鏡像 123
6.7 使用wget對特定的清單做鏡像 124
6.8 使用Nikto掃描網站 125
6.9 理解Nikto的輸出結果 127
6.10 使用Nikto掃描HTTPS站點 128
6.11 使用帶身份驗證的Nikto 129
6.12 在特定起始點啟動Nikto 130
6.13 在Nikto中使用特定的會話Cookie 131
6.14 使用WSFuzzer測試Web服務 132
6.15 理解WSFuzzer的輸出結果 134
第7章 使用cURL實現特定任務的自動化 137
7.1 使用cURL獲取頁面 138
7.2 獲取URL的許多變體 139
7.3 自動跟蹤重定向 140
7.4 使用cURL檢查跨站式腳本 141
7.5 使用cURL檢查目錄遍歷 144
7.6 冒充特定類型的網頁瀏覽器或設備 147
7.7 以互動方式冒充另一種設備 149
7.8 使用cURL模仿搜尋引擎 151
7.9 通過假造Referer頭信息來偽造工作流程 152
7.10 僅獲取HTTP頭 153
7.11 使用cURL傳送POST請求 154
7.12 保持會話狀態 156
7.13 操縱Cookie 157
7.14 使用cURL上傳檔案 158
7.15 建立多級測試用例 159
7.16 結論 164
第8章 使用LibWWWPerl實現自動化 166
8.1 編寫簡單的Perl腳本來獲取頁面 167
8.2 以編程方式更改參數 169
8.3 使用POST模仿表單輸入 170
8.4 捕獲和保存Cookie 172
8.5 檢查會話過期 173
8.6 測試會話固定 175
8.7 傳送惡意Cookie值 177
8.8 上傳惡意檔案內容 179
8.9 上傳帶有惡意名稱的檔案 181
8.10 上傳病毒到套用 182
8.11 使用Perl解析接收到的值 184
8.12 以編程方式來編輯頁面 186
8.13 使用執行緒化提高性能 189
第9章 查找設計缺陷 191
9.1 繞過必需的導航 192
9.2 嘗試特權操作 194
9.3 濫用密碼恢復 195
9.4 濫用可預測的標識符 197
9.5 預測憑證 199
9.6 找出套用中的隨機數 200
9.7 測試隨機數 202
9.8 濫用可重複性 204
9.9 濫用高負載操作 206
9.10 濫用限制性的功能 208
9.11 濫用競爭條件 209
第10章 攻擊AJAX 211
10.1 觀察實時的AJAX請求 213
10.2 識別套用中的JavaScript 214
10.3 從AJAX活動回溯到原始碼 215
10.4 截獲和修改AJAX請求 216
10.5 截獲和修改伺服器回響 218
10.6 使用注入數據破壞AJAX 220
10.7 使用注入XML破壞AJAX 222
10.8 使用注入JSON破壞AJAX 223
10.9 破壞客戶端狀態 224
10.10 檢查跨域訪問 226
10.11 通過JSON劫持來讀取私有數據 227
第11章 操縱會話 229
11.1 在Cookie中查找會話標識符 230
11.2 在請求中查找會話標識符 232
11.3 查找Authentication頭 233
11.4 分析會話ID過期 235
11.5 使用Burp分析會話標識符 239
11.6 使用WebScarab分析會話隨機性 240
11.7 更改會話以逃避限制 245
11.8 假扮其他用戶 247
11.9 固定會話 248
11.10 測試跨站請求偽造 249
第12章 多層面的測試 251
12.1 使用XSS竊取Cookie 251
12.2 使用XSS創建覆蓋 253
12.3 使用XSS產生HTTP請求 255
12.4 以互動方式嘗試基於DOM的XSS 256
12.5 繞過欄位長度限制(XSS) 258
12.6 以互動方式嘗試跨站式跟蹤 259
12.7 修改Host頭 261
12.8 暴力猜測用戶名和密碼 263
12.9 以互動方式嘗試PHP包含檔案注入 265
12.10 製作解壓縮炸彈 266
12.11 以互動方式嘗試命令注入 268
12.12 系統地嘗試命令注入 270
12.13 以互動方式嘗試XPath注入 273
12.14 以互動方式嘗試伺服器端包含(SSI)注入 275
12.15 系統地嘗試伺服器端包含(SSI)注入 276
12.16 以互動方式嘗試LDAP注入 278
12.17 以互動方式嘗試日誌注入 280