Java代码审计(入门篇)
- ISBN:9787115565549
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:452
- 出版时间:2021-08-01
- 条形码:9787115565549 ; 978-7-115-56554-9
本书特色
适读人群 :本书适合安全从业人员、软件开发人员以及对代码安全感兴趣的读者阅读。代码审计(Code Audit)是一种以发现安全漏洞、程序错误和违反程序规范为目标的源代码分析。Web应用程序目前仍然是安全防御的重中之重,对业务的代码进行安全审计是十分重要的。加之Java语言的应用范围广,国内外大型企业大多采用Java作为核心的开发语言,因此对于安全从业者来说,Java代码审计成为了自身应该掌握的关键技能。 本书是一本Java代码审计入门图书,通过大量的示例介绍代码审计的常用入门知识。全书内容分为9章,主要介绍了代码审计的基础知识、代码审计的环境搭建、辅助工具简介、Java EE基础知识补充、OWASP Top十 2017内外的代码审计经验介绍、JSPXCMS代码审计实战以及IAST与RASP技术的介绍等内容,另外,本书还对Java安全编码规范索引进行了简单的介绍。 本书适合安全从业人员、软件开发人员以及对代码安全感兴趣的读者阅读。 本书内容 初识Java代码审计; 代码审计环境搭建; 代码审计辅助工具简介; Java EE基础知识; “OWASP Top 十 2017”漏洞的代码审计; “OWASP Top 十 2017”之外常见漏洞的代码审计; Java EE开发框架安全审计; Jspxcms代码审计实战; 小话IAST与RASP。
内容简介
《Java代码审计入门篇》由浅入深、系统地介绍了Java代码审计的流程、Java Web漏洞产生的原理以及实战讲解,并力求语言通俗易懂、举例简单明了,便于读者阅读领会。同时结合具体案例进行讲解,可以让读者身临其境,快速了解和掌握主流的Java代码安全审计技巧。 阅读《Java代码审计入门篇》不要求读者具备代码审计的相关背景,如有相关经验,对理解本书内容会更有帮助。《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安全客、阿里云盾先知、嘶吼等媒体发表过多篇技术文章。
-
AI绘画+AI摄影+AI短视频从入门到精通
¥45.5¥79.8 -
企业AI之旅
¥43.5¥79.0 -
乡村振兴新技术:新时代农村短视频编辑技术基础入门
¥12.8¥32.0 -
机器学习
¥59.4¥108.0 -
C Primer Plus 第6版 中文版
¥62.6¥108.0 -
基于知识蒸馏的图像去雾技术
¥61.6¥88.0 -
基于深度学习的人体行为识别算法研究
¥37.2¥62.0 -
粒子群算法在优化选取问题中的应用研究
¥40.8¥68.0 -
Web前端开发基础
¥36.5¥57.0 -
智能算法优化及其应用
¥49.0¥68.0 -
Photoshop图像处理
¥25.5¥49.0 -
SNS信息传播分析
¥48.3¥69.0 -
R语言医学数据分析实践
¥72.3¥99.0 -
大模型推荐系统:算法原理、代码实战与案例分析
¥66.8¥89.0 -
HARMONYOS NEXT启程:零基础构建纯血鸿蒙应用
¥75.6¥108.0 -
剪映 从入门到精通
¥25.7¥59.8 -
游戏造梦师----游戏场景开发与设计
¥68.6¥98.0 -
SAR图像处理与检测
¥35.4¥49.8 -
生成式人工智能(AIGC)应用
¥71.1¥90.0 -
人工智能
¥29.4¥42.0