Java代碼審計 入門篇
徐焱 陳俊傑 李柯俊 章宇 蔡國寶
買這商品的人也買了...
-
$199有趣的二進制 (軟件安全與逆向分析)
-
$454超大流量分佈式系統架構解決方案:人人都是架構師2.0
-
$454從實踐中學習 Web 防火牆構建
-
$780$663 -
$505網絡攻防實戰研究:MySQL數據庫安全
-
$520$411 -
$662二進制分析實戰
-
$714$678 -
$474$450 -
$690$538 -
$620$490 -
$599$569 -
$600$468 -
$580$458 -
$414$393 -
$580$458 -
$880$695 -
$658Web 漏洞解析與攻防實戰
-
$403惡意代碼逆向分析基礎詳解
-
$648$616 -
$556深入實踐 Kotlin 元編程
-
$352功能型密碼算法設計與分析
-
$594$564 -
$2,140$2,033 -
$880$695
相關主題
商品描述
《Java代碼審計 入門篇》由淺入深、系統地介紹了Java代碼審計的流程、Java Web漏洞產生的原理以及實戰講解,並力求語言通俗易懂、舉例簡單明瞭,便於讀者閱讀領會。同時結合具體案例進行講解,可以讓讀者身臨其境,快速瞭解和掌握主流的Java代碼安全審計技巧。
閱讀《Java代碼審計 入門篇》不要求讀者具備代碼審計的相關背景,如有相關經驗,對理解本書內容會更有幫助。《Java代碼審計 入門篇》也可作為高等院校信息安全專業的教材。
作者簡介
徐焱,北京交通大学安全研究员,MS08067安全实验室创始人。从2002年开始接触网络安全,有丰富的渗透测试经验,主要研究方向为内网渗透测试和APT攻击。已出版图书《网络攻防实战研究:漏洞利用与提权》、《Web安全攻防:渗透测试实战指南》,在《黑客防线》、《黑客X档案》、《黑客手册》、FreeBuf、360安全客、阿里云盾先知、嘶吼等媒体发表过多篇技术文章。
目錄大綱
第 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