Java代碼審計(入門篇)

Java代碼審計(入門篇)

《Java代碼審計(入門篇)》是由人民郵電出版社異步社區出版的圖書,由

徐焱 主編,陳俊傑、李柯俊、章宇、蔡國寶 著。

基本介紹

  • 中文名:Java代碼審計(入門篇)
  • 作者:徐焱、陳俊傑、李柯俊、章宇、蔡國寶
  • 出版時間:2021年8月
  • 出版社人民郵電出版社
  • 頁數:453 頁
  • ISBN:9787115565549
  • 類別:計算機類-軟體開發
  • 定價:129.9 元
  • 開本:16 開
  • 裝幀:平裝
內容簡介,圖書目錄,作者簡介,

內容簡介

代碼審計(Code Audit)是一種以發現安全漏洞、程式錯誤和違反程式規範為目標的原始碼分析。Web應用程式目前仍然是安全防禦的重中之重,對業務的代碼進行安全審計是十分重要的。加之Java語言的套用範圍廣,國內外大型企業大多採用Java作為核心的開發語言,因此對於安全從業者來說 ,Java代碼審計成為了自身應該掌握的關鍵技能。
本書是一本Java代碼審計入門圖書,通過大量的示例介紹代碼審計的必備入門知識。全書內容分為9章,主要介紹了代碼審計的基礎知識、代碼審計的環境搭建、輔助工具簡介、Java EE基礎知識補充、OWASP Top10 2017內外的代碼審計經驗介紹、JSPXCMS代碼審計實戰以及IAST與RASP技術的介紹等內容,另外,本書還對Java安全編碼規範索引進行了簡單的介紹。
本書由淺入深、全面、系統地介紹了Java代碼審計的流程、Java Web漏洞產生的原理以及實戰講解,並力求語言通俗易懂、舉例簡單明了,便於讀者閱讀領會。同時結合具體案例進行講解,可以讓讀者身臨其境,快速了解和掌握主流的Java代碼安全審計技巧。
閱讀本書不要求讀者具備代碼審計的相關背景,如有相關經驗,對理解本書內容會更有幫助。本書也可作為高等院校信息安全專業的教材。

圖書目錄

第1章 初識Java代碼審計 1
1.1 代碼審計的意義 1
1.2 Java代碼審計所需的基礎能力 3
1.3 代碼審計的常用思路 4
第2章 代碼審計環境搭建 5
2.1 JDK的下載與安裝 5
2.1.1 JDK的下載 5
2.1.2 JDK的安裝 6
2.1.3 添加JDK到系統環境 8
2.2 Docker容器編排 10
2.2.1 Docker基本原理及操作 11
2.2.2 使用Vulhub快速搭建漏洞驗證環境 21
2.3 遠程調試 24
2.3.1 對Jar包進行遠程調試 24
2.3.2 對Weblogic進行遠程調試 27
2.3.3 對Tomcat進行遠程調試 31
2.3.4 VMware虛擬機搭建遠程調試環境 35
2.4 項目構建工具 35
2.4.1 Maven基礎知識及掌握 36
2.4.2 Swagger特點及使用 40
第3章 代碼審計輔助工具簡介 41
3.1 代碼編輯器 41
3.1.1 Sublime 41
3.1.2 IDEA 42
3.1.3 Eclipse 43
3.2 測試工具 43
3.2.1 Burp Suite 43
3.2.2 SwitchyOmega 46
3.2.3 Max HackerBar 47
3.2.4 Postman 48
3.2.5 Postwomen 49
3.2.6 Tamper Data 49
3.2.7 Ysoserial 50
3.2.8 Marshalsec 50
3.2.9 MySQL監視工具 51
3.2.10 Beyond Compare 55
3.3 反編譯工具 56
3.3.1 JD-GUI 56
3.3.2 FernFlower 56
3.3.3 CFR 57
3.3.4 IntelliJ IDEA 58
3.4 Java代碼靜態掃描工具 58
3.4.1 Fortify SCA 58
3.4.2 VCG 59
3.4.3 FindBugs與FindSecBugs外掛程式 60
3.4.4 SpotBugs 60
3.5 公開漏洞查找平台 61
3.5.1 CVE 61
3.5.2 NVD 62
3.5.3 CNVD 63
3.5.4 CNNVD 63
3.6 小結 64
第4章 Java EE基礎知識 65
4.1 Java EE分層模型 65
4.1.1 Java EE的核心技術 66
4.1.2 Java EE分層模型 66
4.2 了解MVC模式與MVC框架 67
4.2.1 Java MVC 模式 68
4.2.2 Java MVC框架 69
4.3 Java Web的核心技術—Servlet 70
4.3.1 Servlet 的配置 70
4.3.2 Servlet的訪問流程 73
4.3.3 Servlet的接口方法 73
4.3.4 Servlet 的生命周期 76
4.4 Java Web過濾器——filter 77
4.4.1 filter的配置 77
4.4.2 filter的使用流程及實現方式 79
4.4.3 filter的接口方法 80
4.4.4 filter 的生命周期 82
4.5 Java反射機制 82
4.5.1 什麼是反射 83
4.5.2 反射的用途 83
4.5.3 反射的基本運用 84
4.5.4 不安全的反射 91
4.6 ClassLoader類載入機制 92
4.6.1 ClassLoader類 92
4.6.2 loadClass( )方法的流程 93
4.6.3 自定義的載入器 94
4.6.4 loadClass( )方法與Class.forName的區別 95
4.6.5 URLClassLoader 96
4.7 Java動態代理 97
4.7.1 靜態代理 97
4.7.2 動態代理 98
4.7.3 CGLib代理 100
4.8 Javassist動態編程 101
4.9 可用於Java Web的安全開發框架 103
4.9.1 Spring Security 103
4.9.2 Apache Shiro 104
4.9.3 OAuth 2.0 105
4.9.4 JWT 107
第5章 “OWASP Top 10 2017”漏洞的代碼審計 109
5.1 注入 110
5.1.1 注入漏洞簡介 110
5.1.2 SQL注入 110
5.1.3 命令注入 117
5.1.4 代碼注入 121
5.1.5 表達式注入 125
5.1.6 模板注入 130
5.1.7 小結 133
5.2 失效的身份認證 134
5.2.1 失效的身份認證漏洞簡介 134
5.2.2 WebGoat8 JWT Token猜解實驗 134
5.2.3 小結 141
5.3 敏感信息泄露 142
5.3.1 敏感信息泄露簡介 142
5.3.2 TurboMail 5.2.0敏感信息泄露 142
5.3.3 開發組件敏感信息泄露 146
5.3.4 小結 146
5.4 XML外部實體注入(XXE) 147
5.4.1 XXE漏洞簡介 147
5.4.2 讀取系統檔案 148
5.4.3 DoS攻擊 150
5.4.4 Blind XXE 151
5.4.5 修復案例 154
5.4.6 小結 156
5.5 失效的訪問控制 157
5.5.1 失效的訪問控制漏洞簡介 157
5.5.2 橫向越權 157
5.5.3 縱向越權 164
5.5.4 小結 168
5.6 安全配置錯誤 168
5.6.1 安全配置錯誤漏洞簡介 168
5.6.2 Tomcat任意檔案寫入(CVE-2017-12615) 169
5.6.3 Tomcat AJP 檔案包含漏洞(CVE-2020-1938) 173
5.6.4 Spring Boot遠程命令執行 192
5.6.5 小結 203
5.7 跨站腳本(XSS) 203
5.7.1 跨站腳本漏洞簡介 203
5.7.2 反射型XSS漏洞 204
5.7.3 存儲型XSS漏洞 206
5.7.4 DOM型XSS漏洞 211
5.7.5 修復建議 212
5.7.6 小結 212
5.8 不安全的反序列化 212
5.8.1 不安全的反序列化漏洞簡介 212
5.8.2 反序列化基礎 213
5.8.3 漏洞產生的必要條件 214
5.8.4 反序列化拓展 215
5.8.5 Apache Commons Collections反序列化漏洞 218
5.8.6 FastJson反序列化漏洞 225
5.8.7 小結 235
5.9 使用含有已知漏洞的組件 235
5.9.1 組件漏洞簡介 235
5.9.2 Weblogic中組件的漏洞 237
5.9.3 富文本編輯器漏洞 238
5.9.4 小結 241
5.10 不足的日誌記錄和監控 241
5.10.1 不足的日誌記錄和監控漏洞簡介 241
5.10.2 CRLF注入漏洞 242
5.10.3 未記錄可審計性事件 243
5.10.4 對日誌記錄和監控的安全建議 244
5.10.5 小結 244
第6章 “OWASP Top 10 2017”之外常見漏洞的代碼審計 245
6.1 CSRF 245
6.1.1 CSRF簡介 245
6.1.2 實際案例及修複方式 246
6.1.3 小結 249
6.2 SSRF 249
6.2.1 SSRF簡介 249
6.2.2 實際案例及修複方式 250
6.2.3 小結 262
6.3 URL跳轉 263
6.3.1 URL跳轉漏洞簡介 263
6.3.2 實際案例及修複方式 264
6.3.3 小結 267
6.4 檔案操作漏洞 267
6.4.1 檔案操作漏洞簡介 267
6.4.2 漏洞發現與修復案例 268
6.4.3 小結 286
6.5 Web後門漏洞 287
6.5.1 Web後門漏洞簡介 287
6.5.2 Java Web 後門案例講解 287
6.5.3 小結 292
6.6 邏輯漏洞 293
6.6.1 邏輯漏洞簡介 293
6.6.2 漏洞發現與修復案例 293
6.6.3 小結 299
6.7 前端配置不當漏洞 300
6.7.1 前端配置不當漏洞簡介 300
6.7.2 漏洞發現與修復案例 300
6.7.3 小結 305
6.8 拒絕服務攻擊漏洞 305
6.8.1 拒絕服務攻擊漏洞簡介 305
6.8.2 漏洞發現與修復案例 306
6.8.3 小結 322
6.9 點擊劫持漏洞 323
6.9.1 點擊劫持漏洞簡介 323
6.9.2 漏洞發現與修復案例 324
6.9.3 小結 327
6.10 HTTP參數污染漏洞 327
6.10.1 HTTP參數污染漏洞簡介 327
6.10.2 漏洞發現與修復案例 328
6.10.3 小結 330
第7章 Java EE開發框架安全審計 331
7.1 開發框架審計技巧簡介 331
7.1.1 SSM框架審計技巧 331
7.1.2 SSH框架審計技巧 360
7.1.3 Spring Boot框架審計技巧 373
7.2 開發框架使用不當範例(Struts2 遠程代碼執行) 377
7.2.1 OGNL簡介 377
7.2.2 S2-001漏洞原理分析 379
第8章 Jspxcms代碼審計實戰 390
8.1 Jspxcms簡介 390
8.2 Jspxcms的安裝 391
8.2.1 Jspxcms的安裝環境需求 391
8.2.2 Jspxcms的安裝步驟 391
8.3 目錄結構及功能說明 399
8.3.1 目錄結構 399
8.3.2 功能說明 402
8.4 第三方組件漏洞審計 406
8.5 單點漏洞審計 408
8.5.1 SQL審計 408
8.5.2 XSS 審計 411
8.5.3 SSRF審計 418
8.5.4 RCE審計 431
8.6 本章總結 440
第9章 小話IAST與RASP 441
9.1 IAST簡介 441
9.2 RASP簡介 443
9.3 單機版OpenRASP Agent實驗探究 444
9.3.1 實驗環境 444
9.3.2 實驗過程 444
9.4 OpenRASP Java Agent原理淺析 448
9.5 本章總結 452
附錄 Java安全編碼規範索引 453

作者簡介

徐焱,北京交通大學安全研究員,MS08067安全實驗室創始人。從2002年開始接觸網路安全,有豐富的滲透測試經驗,主要研究方向為區域網路滲透測試和APT攻擊。已出版圖書《網路攻防實戰研究:漏洞利用與提權》、《Web安全攻防:滲透測試實戰指南》,在《黑客防線》、《黑客X檔案》、《黑客手冊》、FreeBuf、360安全客、阿里雲盾先知、嘶吼等媒體發表過多篇技術文章。

相關詞條

熱門詞條

聯絡我們