Web安全測試技術詳解/51Testing軟體測試網作品系列
內容大鋼
《Web安全測試技術詳解》基於開源安全測試工具SafeTool-51testing和靶機系統WebGoat,系統而深入地闡述了Web安全測試的核心知識、實用工具與關鍵技術。
《Web安全測試技術詳解》共12章,其內容涵蓋SQL注入、路徑遍歷、身份驗證、密碼重置、敏感信息泄露、XXE、訪問控制、XSS、反序列化、組件、請求偽造等主流漏洞的測試方法,並提供了相應的防禦策略。此外,本書還深入剖析了前端安全和CTF等Web攻防類型題目的解題思路及方法,為讀者提供了全面的Web安全測試指導。
《Web安全測試技術詳解》既可作為安全測試初學者的快速入門書,也可作為測試工程師的實戰指導書,還可作為相關培訓機構的教材。
作者介紹
編者:李勇勝|責編:謝曉芳
李勇勝,資深軟體測試工程師,Gitee平台開源項目(安全測試工具和自動化測試工具)維護者,51Testing軟體測試網簽約作者,擁有10余年的軟體測試經驗,熱衷於分享自己的實戰經驗和測試技巧,曾多次在51Testing軟體測試網舉辦的講座上做專題分享,深受業界認可。
目錄
第1章 安全測試必備知識
1.1 安全測試概述
1.2 環境搭建
1.2.1 安裝安全測試工具運行環境
1.2.2 安裝Visual Studio Code
1.2.3 啟動伺服器和安裝WebGoat系統
1.3 靶機系統
1.3.1 WebGoat系統
1.3.2 WebWolf系統
1.4 安全測試基礎知識
1.4.1 HTTP基礎知識
1.4.2 HTTP代理工具
1.4.3 工具
1.4.4 信息安全三要素
1.4.5 加密與編碼基礎
第2章 SQL注入漏洞
2.1 SQL注入漏洞基礎知識
2.1.1 SQL語句的類型與SQL注入漏洞的類型
2.1.2 SQL語句
2.1.3 DML語句
2.1.4 DDL語句
2.1.5 DCL語句
2.1.6 如何利用SQL注入漏洞
2.1.7 SQL注入的後果
2.1.8 影響SQL注入的因素
2.1.9 測試字元型SQL注入漏洞
2.1.10 測試數字型SQL注入漏洞
2.1.11 利用SQL注入漏洞獲取敏感數據
2.1.12 注入SQL查詢鏈
2.1.13 SQL注入漏洞對系統可用性的破壞
2.2 SQL注入漏洞進階
2.2.1 組合注入
2.2.2 組合注入技巧
2.2.3 SQL盲注
2.2.4 演示SQL盲注的方法
2.2.5 做筆試題
第3章 SQL注入防禦和路徑遍歷漏洞
3.1 SQL注入防禦
3.1.1 SQL注入的防禦方法
3.1.2 存儲過程
3.1.3 參數化查詢
3.1.4 編寫安全代碼
3.1.5 編寫可運行的安全代碼
3.1.6 參數化查詢的.NET方式
3.1.7 使用輸入驗證防禦SQL注入漏洞
3.1.8 穿透薄弱的輸入驗證(一)
3.1.9 穿透薄弱的輸入驗證(二)
3.1.10 order by注入
3.1.11 如何利用order by注入
3.1.12 小特許可權制
3.2 路徑遍歷漏洞
3.2.1 路徑遍歷漏洞的原理
3.2.2 實現任意文件上傳
3.2.3 穿透薄弱的防禦規則
3.2.4 穿透頁面的過濾規則
3.2.5 獲取敏感文件
第4章 身份驗證
4.1 繞過身份驗證
4.1.1 身份驗證繞過的方式
4.1.2 雙因素身份認證中的密碼重置
4.2 會話令牌
4.2.1 JWT簡介
4.2.2 JWT的結構
4.2.3 如何使用JWT
4.2.4 JWT簽名演算法的None漏洞
4.2.5 弱簽名密鑰的爆破攻擊
4.2.6 刷新令牌
4.2.7 刷新令牌存在的漏洞
4.2.8 越權操作漏洞
第5章 密碼重置和安全密碼
5.1 密碼重置
5.1.1 接收密碼重置郵件
5.1.2 確定已註冊的賬戶
5.1.3 安全問題存在的漏洞
5.1.4 如何設置安全問題
5.1.5 重置密碼鏈接存在的漏洞
5.1.6 如何設計安全的密碼重置功能
5.2 安全密碼
5.2.1 密碼標準
5.2.2 如何設置一個安全性足夠強的密碼
5.2.3 如何提高賬戶的安全性
5.2.4 如何安全地存儲密碼
第6章 敏感信息泄露和XXE漏洞
6.1 敏感信息泄露
6.1.1 為什麼需要對敏感數據進行加密
6.1.2 嗅探HTTP數據包的敏感內容
6.2 XXE漏洞
6.2.1 XML基礎知識
6.2.2 XML實體和XXE漏洞
6.2.3 XXE注入舉例
6.2.4 利用XXE漏洞顯示文件系統的目錄
6.2.5 針對測驗6.2的防禦方案
6.2.6 通過代碼審查找到XXE漏洞
6.2.7 REST框架的XXE漏洞
6.2.8 針對REST框架的XXE漏洞的解決方案
6.2.9 利用XXE漏洞實施的DoS攻擊
6.2.10 XXE盲注
6.2.11 如何利用XXE盲注
6.2.12 如何防禦XXE漏洞
第7章 訪問控制漏洞
7.1 不安全的直接對象引用
7.1.1 什麼是IDOR
7.1.2 使用合法的用戶身份登錄
7.1.3 對比差異點
7.1.4 猜測和預測模式
7.1.5 測試不安全的對象引用
7.1.6 如何做到安全的對象引用
7.2 缺少功能級訪問控制
7.2.1 什麼是缺少功能級訪問控制
7.2.2 定位前端頁面隱藏功能
7.2.3 利用訪問控制漏洞收集用戶信息
第8章 XSS漏洞
8.1 XSS漏洞基礎知識
8.2 在前端執行JavaScript語句
8.3 可能存在XSS漏洞的位置
8.4 XSS漏洞的危害
8.5 反射型XSS漏洞的利用場景
8.6 測試反射型XSS漏洞
8.7 Self-XSS漏洞
8.8 基於DOM的XSS漏洞
8.9 識別基於DOM的XSS漏洞
8.10 測試基於DOM的XSS漏洞
8.11 涉及XSS漏洞的筆試題
第9章 反序列化漏洞
9.1 快速熟悉一門語言的思維框架
9.2 序列化和反序列化
9.3 如何利用Java反序列化漏洞
9.4 反序列化漏洞的調用鏈
9.5 如何利用反序列化漏洞
第10章 組件漏洞
10.1 什麼是組件
10.2 開源組件的生態系統
10.3 OWASP對組件漏洞的描述
10.4 WebGoat系統的組件的安全性
10.5 前端組件jquery-ui的特定版本
10.6 軟體產品中引用開源組件需要注意的事項
10.7 如何生成物料清單
10.8 如何處理安全信息過載
10.9 如何處理許可證信息過載
10.10 開源組件在軟體架構中的使用情況
10.11 開源組件的XStream漏洞
10.12 開源組件的安全現狀以及如何應對安全風險
第11章 請求偽造漏洞
11.1 CSRF漏洞
11.1.1 什麼是CSRF漏洞
11.1.2 GET型CSRF漏洞
11.1.3 測試GET型CSRF漏洞
11.1.4 測試POST型CSRF漏洞
11.1.5 如何防止CSRF漏洞
11.1.6 JSON型CSRF漏洞
11.1.7 測試JSON型CSRF漏洞
11.1.8 針對登錄請求的CSRF攻擊
11.1.9 CSRF漏洞的影響和解決方案
11.2 SSRF漏洞
11.2.1 SSRF漏洞簡介
11.2.2 利用SSRF漏洞載入資源
11.2.3 利用SSRF漏洞偽造請求
11.2.4 SSRF漏洞的防禦方法
第12章 前端安全和高階CTF挑戰
12.1 繞過前端限制
12.1.1 什麼是繞過前端限制
12.1.2 突破HTML代碼限制
12.1.3 突破JavaScript腳本限制
12.2 客戶端過濾
12.2.1 什麼是客戶端過濾
12.2.2 定位敏感信息
12.2.3 定位前端敏感功能
12.3 HTML篡改
12.3.1 什麼是HTML篡改
12.3.2 利用HTML篡改低價購物
12.3.3 如何防止HTML篡改
12.4 CTF題型之一
12.4.1 CTF題目規則
12.4.2 找回丟失的管理員登錄密碼
12.5 CTF題型之二<