封面
版权信息
版 权
内容提要
本书对Java代码研发人员的意义
推荐序1
推荐序2
推荐序3
推荐序4
推荐序5
作者简介
前言
资源与支持
第1章 初识Java代码审计
1.1 代码审计的意义
1.2 Java代码审计所需的基础能力
1.3 代码审计的常用思路
第2章 代码审计环境搭建
2.1 JDK的下载与安装
2.1.1 JDK的下载
2.1.2 JDK的安装
2.1.3 添加JDK到系统环境
2.2 Docker容器编排
2.2.1 Docker基本原理及操作
2.2.2 使用Vulhub快速搭建漏洞验证环境
2.3 远程调试
2.3.1 对Jar包进行远程调试
2.3.2 对Weblogic进行远程调试
2.3.3 对Tomcat进行远程调试
2.3.4 VMware虚拟机搭建远程调试环境
2.4 项目构建工具
2.4.1 Maven基础知识及掌握
2.4.2 Swagger特点及使用
第3章 代码审计辅助工具简介
3.1 代码编辑器
3.1.1 Sublime
3.1.2 IDEA
3.1.3 Eclipse
3.2 测试工具
3.2.1 Burp Suite
3.2.2 SwitchyOmega
3.2.3 Max HackerBar
3.2.4 Postman
3.2.5 Postwomen
3.2.6 Tamper Data
3.2.7 Ysoserial
3.2.8 Marshalsec
3.2.9 MySQL监视工具
3.2.10 Beyond Compare
3.3 反编译工具
3.3.1 JD-GUI
3.3.2 FernFlower
3.3.3 CFR
3.3.4 IntelliJ IDEA
3.4 Java代码静态扫描工具
3.4.1 Fortify SCA
3.4.2 VCG
3.4.3 FindBugs与FindSecBugs插件
3.4.4 SpotBugs
3.5 公开漏洞查找平台
3.5.1 CVE
3.5.2 NVD
3.5.3 CNVD
3.5.4 CNNVD
3.6 小结
第4章 Java EE基础知识
4.1 Java EE分层模型
4.1.1 Java EE的核心技术
4.1.2 Java EE分层模型
4.2 了解MVC模式与MVC框架
4.2.1 Java MVC 模式
4.2.2 Java MVC框架
4.3 Java Web的核心技术——Servlet
4.3.1 Servlet 的配置
4.3.2 Servlet的访问流程
4.3.3 Servlet的接口方法
4.3.4 Servlet 的生命周期
4.4 Java Web过滤器——filter
4.4.1 filter的配置
4.4.2 filter的使用流程及实现方式
4.4.3 filter的接口方法
4.4.4 filter 的生命周期
4.5 Java反射机制
4.5.1 什么是反射
4.5.2 反射的用途
4.5.3 反射的基本运用
4.5.4 不安全的反射
4.6 ClassLoader类加载机制
4.6.1 ClassLoader类
4.6.2 loadClass()方法的流程
4.6.3 自定义的类加载器
4.6.4 loadClass()方法与Class.forName的区别
4.6.5 URLClassLoader
4.7 Java动态代理
4.7.1 静态代理
4.7.2 动态代理
4.7.3 CGLib代理
4.8 Javassist动态编程
4.9 可用于Java Web的安全开发框架
4.9.1 Spring Security
4.9.2 Apache Shiro
4.9.3 OAuth 2.0
4.9.4 JWT
第5章 “OWASP Top 10 2017”漏洞的代码审计
5.1 注入
5.1.1 注入漏洞简介
5.1.2 SQL注入
5.1.3 命令注入
5.1.4 代码注入
5.1.5 表达式注入
5.1.6 模板注入
5.1.7 小结
5.2 失效的身份认证
5.2.1 失效的身份认证漏洞简介
5.2.2 WebGoat8 JWT Token猜解实验
5.2.3 小结
5.3 敏感信息泄露
5.3.1 敏感信息泄露简介
5.3.2 TurboMail 5.2.0敏感信息泄露
5.3.3 开发组件敏感信息泄露
5.3.4 小结
5.4 XML 外部实体注入(XXE)
5.4.1 XXE漏洞简介
5.4.2 读取系统文件
5.4.3 DoS攻击
5.4.4 Blind XXE
5.4.5 修复案例
5.4.6 小结
5.5 失效的访问控制
5.5.1 失效的访问控制漏洞简介
5.5.2 横向越权
5.5.3 纵向越权
5.5.4 小结
5.6 安全配置错误
5.6.1 安全配置错误漏洞简介
5.6.2 Tomcat任意文件写入(CVE-2017-12615)
5.6.3 Tomcat AJP 文件包含漏洞(CVE-2020-1938)
5.6.4 Spring Boot远程命令执行
5.6.5 小结
5.7 跨站脚本(XSS)
5.7.1 跨站脚本漏洞简介
5.7.2 反射型XSS漏洞
5.7.3 存储型XSS漏洞
5.7.4 DOM型XSS漏洞
5.7.5 修复建议
5.7.6 小结
5.8 不安全的反序列化
5.8.1 不安全的反序列化漏洞简介
5.8.2 反序列化基础
5.8.3 漏洞产生的必要条件
5.8.4 反序列化拓展
5.8.5 Apache Commons Collections反序列化漏洞
5.8.6 FastJson反序列化漏洞
5.8.7 小结
5.9 使用含有已知漏洞的组件
5.9.1 组件漏洞简介
5.9.2 Weblogic中组件的漏洞
5.9.3 富文本编辑器漏洞
5.9.4 小结
5.10 不足的日志记录和监控
5.10.1 不足的日志记录和监控漏洞简介
5.10.2 CRLF注入漏洞
5.10.3 未记录可审计性事件
5.10.4 对日志记录和监控的安全建议
5.10.5 小结
第6章 “OWASP Top 10 2017”之外常见漏洞的代码审计
6.1 CSRF
6.1.1 CSRF简介
6.1.2 实际案例及修复方式
6.1.3 小结
6.2 SSRF
6.2.1 SSRF简介
6.2.2 实际案例及修复方式
6.2.3 小结
6.3 URL跳转
6.3.1 URL跳转漏洞简介
6.3.2 实际案例及修复方式
6.3.3 小结
6.4 文件操作漏洞
6.4.1 文件操作漏洞简介
6.4.2 漏洞发现与修复案例
6.4.3 小结
6.5 Web后门漏洞
6.5.1 Web后门漏洞简介
6.5.2 Java Web 后门案例讲解
6.5.3 小结
6.6 逻辑漏洞
6.6.1 逻辑漏洞简介
6.6.2 漏洞发现与修复案例
6.6.3 小结
6.7 前端配置不当漏洞
6.7.1 前端配置不当漏洞简介
6.7.2 漏洞发现与修复案例
6.7.3 小结
6.8 拒绝服务攻击漏洞
6.8.1 拒绝服务攻击漏洞简介
6.8.2 漏洞发现与修复案例
6.8.3 小结
6.9 点击劫持漏洞
6.9.1 点击劫持漏洞简介
6.9.2 漏洞发现与修复案例
6.9.3 小结
6.10 HTTP参数污染漏洞
6.10.1 HTTP参数污染漏洞简介
6.10.2 漏洞发现与修复案例
6.10.3 小结
第7章 Java EE开发框架安全审计
7.1 开发框架审计技巧简介
7.1.1 SSM框架审计技巧
7.1.2 SSH框架审计技巧
7.1.3 Spring Boot框架审计技巧
7.2 开发框架使用不当范例(Struts2 远程代码执行)
7.2.1 OGNL简介
7.2.2 S2-001漏洞原理分析
第8章 Jspxcms代码审计实战
8.1 Jspxcms简介
8.2 Jspxcms的安装
8.2.1 Jspxcms的安装环境需求
8.2.2 Jspxcms的安装步骤
8.3 目录结构及功能说明
8.3.1 目录结构
8.3.2 功能说明
8.4 第三方组件漏洞审计
8.5 单点漏洞审计
8.5.1 SQL审计
8.5.2 XSS 审计
8.5.3 SSRF审计
8.5.4 RCE审计
8.6 本章总结
第9章 小话IAST与RASP
9.1 IAST简介
9.2 RASP简介
9.3 单机版OpenRASP Agent实验探究
9.3.1 实验环境
9.3.2 实验过程
9.4 OpenRASP Java Agent原理浅析
9.5 本章总结
附录 Java安全编码规范索引
更新时间:2021-09-27 17:28:00