|
Java电子书:Java代码审计 入门篇 PDF 电子书 Java吧 java8.com$ L3 s3 l1 e8 M* z+ D2 M
: V0 e, M X, @0 g# _/ g/ A+ C! Y
作者:徐焱 陈俊杰 李柯俊 章宇 蔡国宝出版社:人民邮电出版社出版时间:2021年08月 - d2 V; t& a/ D8 L2 C
8 U% p+ k3 y8 w% E+ n7 X4 q编号:189-P9999【Java吧 java8.com】3 I: G% G- l. V, \
, I I5 R- q+ c; \% X* D
9 i, Y1 D) M# h$ K f8 Y3 s) u
& ^. l& p( M D! _/ }Java电子书目录:第 1章 初识Java代码审计1
B [; Y4 i. p4 |$ E8 n& ?7 f1.1 代码审计的意义 1
5 j' z7 D' S* ~. \+ \, a( Z2 ]9 r1.2 Java代码审计所需的基础能力 3 m6 H0 s% b/ C6 w, k
1.3 代码审计的常用思路 4* t2 H8 v& c4 `3 k% {) `
第 2章 代码审计环境搭建 5
2 D7 X0 O5 l8 Z5 @' e2.1 JDK的下载与安装 5
8 q- G2 m- D7 j2.1.1 JDK的下载 51 F1 p- U$ \1 K& B( A
2.1.2 JDK的安装 6
; r0 C5 B& j2 @" U+ M2.1.3 添加JDK到系统环境 8' @* y/ t+ O* f- D8 w
2.2 Docker容器编排 10) Q* g2 X# ^, Q9 V
2.2.1 Docker基本原理及操作 11
% r5 @3 F* j% C+ b2.2.2 使用Vulhub快速搭建漏洞验证环境 21
5 ^. \# J$ z/ ?- M6 v2.3 远程调试 243 l& k9 N- L% p+ F/ B5 E2 `
2.3.1 对Jar包进行远程调试 24
x6 c' w' {* Q% `" d% C9 u+ r2.3.2 对Weblogic进行远程调试 27: ?1 E2 U o! g# G' E
2.3.3 对Tomcat进行远程调试 31+ \1 b0 t# O0 W" }
2.3.4 VMware虚拟机搭建远程调试环境 35
3 A/ T; o$ ` M2.4 项目构建工具 35/ d* d. v$ p" p: P( X
2.4.1 Maven基础知识及掌握 36
6 a# [7 g+ M0 ~/ K2.4.2 Swagger特点及使用 40
1 o$ M+ x* N/ e2 B( q第3章 代码审计辅助工具简介 41; r9 T7 }$ [) E4 j' p; _# c
3.1 代码编辑器 412 x1 e4 F$ e+ t
3.1.1 Sublime 410 z( v* _& `; X! X8 l, ^
3.1.2 IDEA 42: V( R8 v& F: k: w( Y6 u! B
3.1.3 Eclipse 43; ~5 f& w7 D+ y4 ?+ M# U7 \
3.2 测试工具 43" \+ N ~4 b4 Y! M9 ~9 ^
3.2.1 Burp Suite 43; I! k/ H3 `3 F) x, G
3.2.2 SwitchyOmega 467 }. `+ ?; M9 ]* `+ q- `
3.2.3 Max HackerBar 47
$ g+ ?$ G5 W* q3 ^3.2.4 Postman 485 ^4 w' n' a1 ?5 F
3.2.5 Postwomen 49$ V& N* \, [5 b: g2 A
3.2.6 Tamper Data 497 {2 z$ B8 ^8 S* @
3.2.7 Ysoserial 50
: J4 O: W% C4 S/ O% Y3.2.8 Marshalsec 50
' Q9 A! z6 y8 l! H% e3.2.9 MySQL监视工具 51. U1 x$ y6 I2 B7 r A
3.2.10 Beyond Compare 55, k T8 K- s( [# s: m' H+ J
3.3 反编译工具 56) B2 u. e8 r, U8 B9 D! m$ T
3.3.1 JD-GUI 56
2 q* E+ x, f C' D3.3.2 FernFlower 56
# Y$ b2 V$ ]) R) b6 K& S. }8 u& @3.3.3 CFR 57
& _) v! N8 n$ D3 m5 n9 c8 @3.3.4 IntelliJ IDEA 58
. v3 h( N% r" ]$ G# b3.4 Java代码静态扫描工具 58
) |) e9 t# X0 f" X- N3.4.1 Fortify SCA 58
( u3 ^" Z) C: _$ v/ H$ G3.4.2 VCG 59
3 }7 y2 U* H$ W, {3.4.3 FindBugs与FindSecBugs插件 604 \5 _/ I' V! Z- t
3.4.4 SpotBugs 60
7 W% Z/ p+ h" O7 g3.5 公开漏洞查找平台 61, l* i( o0 C/ ?4 ^& I4 U" h, h
3.5.1 CVE 61
( R3 l- K+ J& f- j; @0 J7 t9 Y3.5.2 NVD 62
& {; b8 ^' l% n9 i+ ^3.5.3 CNVD 63! F: k8 ~' x+ p& Q
3.5.4 CNNVD 63
9 T! @6 n+ p) |$ m0 Y6 z- C3.6 小结 64
9 `1 i+ g3 t. ?4 W3 T5 V+ A第4章 Java EE基础知识 652 m, i2 v& J# D4 w6 z9 J9 { G
4.1 Java EE分层模型 65
9 f9 X+ y8 D. k. M+ M. n1 I4 ?& B4.1.1 Java EE的核心技术 66
3 y; U, Z1 c, w4.1.2 Java EE分层模型 66" U: X/ e- s. G3 ~
4.2 了解MVC模式与MVC框架 67
0 v2 \' e. S) v3 k1 ^4.2.1 Java MVC 模式 68" z# Z- L0 X8 u8 d- ?
4.2.2 Java MVC框架 697 e. B& I1 D5 M5 h
4.3 Java Web的核心技术—Servlet 70, _5 b; T! @+ J( w
4.3.1 Servlet 的配置 709 z) ? z# J: z/ h
4.3.2 Servlet的访问流程 73
& C- S5 C w% Z4 k4.3.3 Servlet的接口方法 73
/ x8 J* ^, `$ J: i g4.3.4 Servlet 的生命周期 76% d2 j! p2 O" W1 C2 |9 c* C
4.4 Java Web过滤器——filter 77
) e% S, h7 N3 \% Z/ R0 W4.4.1 filter的配置 77
4 y% h7 P1 g, V" w8 H4.4.2 filter的使用流程及实现方式 79
1 e' a* D, ]2 o+ P- Y6 d W4.4.3 filter的接口方法 80! C2 k# R) V! [3 @
4.4.4 filter 的生命周期 82
. u% t# {$ W6 G% {: K4.5 Java反射机制 82
5 n. C( ~# |$ y6 z2 ]& K7 r U% `: @4.5.1 什么是反射 83; E4 x1 z- A+ S! f" h+ F, u' B
4.5.2 反射的用途 83
! |* h3 ]7 ? M/ i7 R4.5.3 反射的基本运用 84; A9 U" S) i6 A* o. @
4.5.4 不安全的反射 91
" i; G3 g4 F3 ]8 ~9 }4.6 ClassLoader类加载机制 92
; S: r1 R- ?- }( T7 G# Q4.6.1 ClassLoader类 92
+ N* Z' ?& A) G; z1 u) p2 d7 a$ {4.6.2 loadClass()方法的流程 93
5 _- t& |/ e; q2 G+ a, j; u4.6.3 自定义的类加载器 94
0 B1 ~1 F& j9 P. X9 N6 Y, u4.6.4 loadClass()方法与Class.forName的区别 95% k1 L! j1 [* u \0 m
4.6.5 URLClassLoader 96$ j9 O# T/ H/ x2 s) A
4.7 Java动态代理 97: N7 h" I$ n& G! ?- i
4.7.1 静态代理 978 U% T! f1 q/ b/ I2 w9 D5 A8 Z
4.7.2 动态代理 98- p$ j3 m4 ?& C5 U
4.7.3 CGLib代理 100
; X4 Z" y& v; N% D8 T' E4.8 Javassist动态编程 101$ J$ N0 z+ `+ Y
4.9 可用于Java Web的安全开发框架 103
/ B' A0 r, x$ ]/ o8 r- O4.9.1 Spring Security 103
4 h {3 v/ V# n3 D: A4.9.2 Apache Shiro 104
9 @3 `+ c& ?6 ?2 v: b t. L4.9.3 OAuth 2.0 1054 R4 h8 C. d* X `, k- S' E$ o
4.9.4 JWT 1070 J* c8 Z+ y" v4 a4 Y+ V
第5章 “OWASP Top 10 2017”漏洞的代码审计 109
7 V) G5 I: a7 r+ k) E5.1 注入 1103 q3 R! O3 l4 `1 l
5.1.1 注入漏洞简介 110
0 i7 w9 Q/ z( m" e& r7 q; s3 l5.1.2 SQL注入 110
3 m1 q* A- I j4 ^5.1.3 命令注入 117 H' z7 g) a+ y: K+ c# z( ?
5.1.4 代码注入 121
5 Q! W4 @( }1 v5 K: ]5.1.5 表达式注入 125# b7 F- ?) b. h3 e+ j
5.1.6 模板注入 1305 w4 X* ?( I3 G7 h% [; o
5.1.7 小结 133: E v( U, n; e: W& u+ x# l
5.2 失效的身份认证 1344 ~3 G( }% T& m0 e9 q
5.2.1 失效的身份认证漏洞简介 134
. U$ O: i a0 A% P* O$ p5.2.2 WebGoat8 JWT Token猜解实验 134
( a; {6 u1 N+ W6 h6 [5.2.3 小结 141
: c6 d6 e% I+ s \9 ?4 ^5.3 敏感信息泄露 142
! O' A1 A5 ?0 G5 n4 K/ i0 e) w5.3.1 敏感信息泄露简介 1424 ?: t: L6 ~4 @" `/ a' n# O' I
5.3.2 TurboMail 5.2.0敏感信息泄露 142, X$ {1 B. d) a: ]
5.3.3 开发组件敏感信息泄露 146& S N% g" H3 x O! y5 `1 y- M: z
5.3.4 小结 146
& f) s$ R5 [; ?# u5.4 XML外部实体注入(XXE) 147
2 g* e# _; \, l3 [( B5.4.1 XXE漏洞简介 147
0 M7 D# |1 y5 C- @4 e. p, z% w5.4.2 读取系统文件 148
7 y" T! F' o4 ^+ H5.4.3 DoS攻击 1502 i' h5 p4 J& Z
5.4.4 Blind XXE 151; \9 n0 f4 v6 ]% c- L9 Y/ w( z1 \
5.4.5 修复案例 1540 S/ G4 H Y% ?. {& `* ^
5.4.6 小结 156
9 Y- L; {+ |% `& `: n7 |2 S5.5 失效的访问控制 157. M! i c. J7 F3 ^$ G" ^3 h5 v" a( x
5.5.1 失效的访问控制漏洞简介 157. s2 C! @* J* H( S/ F0 T
5.5.2 横向越权 157
9 d$ K! t' o) s5 l8 X: n( @5.5.3 纵向越权 164& Z, N& o. J. L! ]
5.5.4 小结 168$ [6 N. B- w! }$ y
5.6 安全配置错误 168
. _' g$ \4 i% B, u3 j6 j6 v; n$ y5.6.1 安全配置错误漏洞简介 168
3 N# M& N, j" E7 a% L/ E: G5.6.2 Tomcat任意文件写入(CVE-2017-12615) 1698 i* k! F$ v4 }9 ~+ k+ U
5.6.3 Tomcat AJP 文件包含漏洞(CVE-2020-1938) 1730 O* H! t( E. N9 T2 ]- G
5.6.4 Spring Boot远程命令执行 1921 i0 H. W& c0 r2 d( C- _& g5 g
5.6.5 小结 203' P, Q4 e& I* c) @- z9 C: ]
5.7 跨站脚本(XSS) 203
]: p& |8 d* T8 F, a5.7.1 跨站脚本漏洞简介 203
3 Z) Y2 E: p/ G8 \$ y& e. y5.7.2 反射型XSS漏洞 204) V: A. |( @2 d9 j
5.7.3 存储型XSS漏洞 206
- B2 U1 t: o2 i9 @+ f3 {. G5.7.4 DOM型XSS漏洞 211/ S5 \- c8 n& R6 f3 r0 U8 T
5.7.5 修复建议 212$ h: e, {7 L6 v P
5.7.6 小结 212+ E2 n+ n8 d; g4 ^
5.8 不安全的反序列化 212
1 H0 s3 i6 p X9 E$ ^5.8.1 不安全的反序列化漏洞简介 212
( b! X u; I' R; G+ r* k5.8.2 反序列化基础 213java吧 www.java8.com8 n& _8 d0 N) p& u- K0 M
5.8.3 漏洞产生的必要条件 214: v, u/ ]% R: Z' x
5.8.4 反序列化拓展 215
- J" w0 B8 U0 y6 b* C' Q9 M, n. J! o5.8.5 Apache Commons Collections反序列化漏洞 218
4 G2 A% O M4 ?9 v! }5.8.6 FastJson反序列化漏洞 225" t+ B/ S# b3 V# f" g: Z9 F: x; c
5.8.7 小结 235
0 F, \$ c# \5 E' p, ` T' r8 D5.9 使用含有已知漏洞的组件 235
9 F/ z' B. _3 ^5.9.1 组件漏洞简介 235
9 Y6 m( b+ G" L5.9.2 Weblogic中组件的漏洞 237. ~( L# p/ B2 H' G
5.9.3 富文本编辑器漏洞 238; @5 W) c0 }. U2 l) t3 |4 A0 a; J
5.9.4 小结 241 x% l$ J: {! F7 X h; H# }
5.10 不足的日志记录和监控 2418 r# z W& h7 G! m3 G: U
5.10.1 不足的日志记录和监控漏洞简介 2410 }$ _& ^& Y4 d+ M" L! ]
5.10.2 CRLF注入漏洞 242
. c* y/ U7 A P+ U7 [5.10.3 未记录可审计性事件 243
8 Y5 o/ T, l3 p0 t5.10.4 对日志记录和监控的安全建议 244
" x/ t; X F& z* ~3 y5.10.5 小结 244
' A, P0 s( O5 |) V第6章 “OWASP Top 10 2017”之外常见漏洞的代码审计 245+ B7 H! H3 i8 ? [7 q2 ^1 e! m
6.1 CSRF 245
/ v7 P) G3 U+ x" h# B5 _4 o' \3 p6.1.1 CSRF简介 245
( \' k3 U( Y+ e1 f0 u- r6.1.2 实际案例及修复方式 246
8 k4 L9 n- l. x; ^9 b6.1.3 小结 249) e) T9 t) B% i# B) r& b
6.2 SSRF 249: Z/ G% X, v5 f& H& u- |- ^
6.2.1 SSRF简介 2499 p# p2 u0 [! h- \
6.2.2 实际案例及修复方式 250
) C* q0 N6 M) U1 ~6.2.3 小结 262" I; T* U; h& G, H: h# n q/ N
6.3 URL跳转 2634 R- E- p0 v1 M4 S# I
6.3.1 URL跳转漏洞简介 263$ l) a% X8 s/ `' ?
6.3.2 实际案例及修复方式 2645 g& U. w) V# ?5 j9 {* `! F8 H
6.3.3 小结 267$ ~& V; ~$ T( {( @$ b7 m) m9 M* a3 a
6.4 文件操作漏洞 267
( j% s2 d4 X2 ?, g: |* `: A6.4.1 文件操作漏洞简介 267
& h5 k# p; X2 v1 A+ Q6.4.2 漏洞发现与修复案例 268
+ }7 y7 t: K F) K$ g' r6.4.3 小结 286
; s$ U8 R' M9 x( U3 F' m6.5 Web后门漏洞 287) T/ V5 D; {/ \& U# m" s
6.5.1 Web后门漏洞简介 287
- A: X) o$ }9 F% F$ D6.5.2 Java Web 后门案例讲解 287
% J" g# ?8 S0 e6.5.3 小结 2924 t% k! D: F( V' H# n
6.6 逻辑漏洞 293% |2 q# ]9 d# S2 \4 _0 X
6.6.1 逻辑漏洞简介 293
) b! r6 C u3 N; O0 e6.6.2 漏洞发现与修复案例 2939 ?+ Z/ M. Q' z# F8 ?7 i! _
6.6.3 小结 2995 Y& c+ c u- E2 X- W
6.7 前端配置不当漏洞 300
0 ~6 T3 O Z/ Q+ w Q; p @* B# }6.7.1 前端配置不当漏洞简介 300
+ t ^/ P; g6 E9 ]/ P/ i5 V6.7.2 漏洞发现与修复案例 3005 T* m* J9 e7 p9 B4 @
6.7.3 小结 305) ]- x7 O/ b( Z0 h% x7 r: l
6.8 拒绝服务攻击漏洞 305
4 \- S! E/ R1 Z% Z1 O6.8.1 拒绝服务攻击漏洞简介 305; n1 G- L; G$ {9 u( z5 b0 a
6.8.2 漏洞发现与修复案例 306' o4 @* O3 I9 x; \7 S
6.8.3 小结 322+ V4 V8 a3 w: k# y& f$ w. K
6.9 点击劫持漏洞 3234 c: S3 }0 F4 H5 l2 T
6.9.1 点击劫持漏洞简介 3238 D, G, } k5 E4 M$ ]- x$ p
6.9.2 漏洞发现与修复案例 3240 V) x" W- `! ?/ |1 j% Y
6.9.3 小结 327- P4 d5 g3 z4 [6 ^. J; s$ _$ i9 _2 W
6.10 HTTP参数污染漏洞 327
1 R$ C7 Q% ]8 m, U# B9 h0 ] q) G6.10.1 HTTP参数污染漏洞简介 327! T" i. |! ]3 g2 L& A
6.10.2 漏洞发现与修复案例 328, d! Q: ?6 _% L) G% ?
6.10.3 小结 3307 p E2 h [. J3 q. i! g, A D
第7章 Java EE开发框架安全审计 331/ y1 Z8 Q* I- h7 [. k1 x
7.1 开发框架审计技巧简介 331
" f V0 k) n& h' Y( K7.1.1 SSM框架审计技巧 331
) q& F, \! T" u( o7.1.2 SSH框架审计技巧 360
1 N3 b7 T1 r% u1 J$ d% u7.1.3 Spring Boot框架审计技巧 373
6 v2 Q& | c& l* p- A1 x; c: C, m7.2 开发框架使用不当范例(Struts2 远程代码执行) 377
* f- Y7 C3 F" B* o2 m7.2.1 OGNL简介 377* x' W& J& R: F
7.2.2 S2-001漏洞原理分析 3797 q: ?% m1 P' k: T
第8章 Jspxcms代码审计实战 3903 W' V* C8 @3 Y& L8 L/ s
8.1 Jspxcms简介 390
: y$ Y( Z0 v" J4 s& h8.2 Jspxcms的安装 391
3 c# o# F1 \+ M8 A6 y. u8.2.1 Jspxcms的安装环境需求 391
. o- f+ f* m/ E6 G! q" d8.2.2 Jspxcms的安装步骤 391
) }; z1 c& B5 f; X6 n9 V4 y( q8.3 目录结构及功能说明 399
' M1 P5 M9 K. J8.3.1 目录结构 399
R/ A' ~5 w4 _7 I7 F- c9 O: k8.3.2 功能说明 402
: g( B5 h% ?) P4 w4 p' Q" g! |* ~" e; F8.4 第三方组件漏洞审计 406; D3 d6 |4 c- h/ J, N% B
8.5 单点漏洞审计 408
2 r( y9 C7 y! C$ e$ S4 C8.5.1 SQL审计 408
9 W$ h2 H! [) o5 T5 r0 G8.5.2 XSS 审计 411
1 ^& C3 Z6 a/ l3 x3 m7 F! K8.5.3 SSRF审计 418, K0 T+ S" I0 i! Z1 B
8.5.4 RCE审计 4310 s0 z! i# O+ W& c
8.6 本章总结 440
) {2 ?. d0 j7 U9 a$ [第9章 小话IAST与RASP 441' i* E" O0 T% ], y/ L& s* v* @9 d
9.1 IAST简介 4416 \2 E; [, E. ^5 I# s2 b+ b% P
9.2 RASP简介 4434 r5 m0 O+ i2 k R- q
9.3 单机版OpenRASP Agent实验探究 444$ G) S% m! C5 M- z. S
9.3.1 实验环境 444
& U+ @1 @7 D! F* E9.3.2 实验过程 444; I9 d, {7 K; G+ V8 m8 C$ g
9.4 OpenRASP Java Agent原理浅析 448: E% @7 X1 V+ m
9.5 本章总结 452
4 j! c( U, Z; _% K* v/ P附录 Java安全编码规范索引 453
; h4 q! ?, @0 s J百度云盘下载地址:
3 a) k. V$ Q* p9 O* M: p+ ]版权归出版社和原作者所有,链接已删除,请购买正版 购买地址:http://product.dangdang.com/29273747.html
" }; E$ T5 X' z G |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|