|
Java电子书:Java代码审计 入门篇 PDF 电子书 Java吧 java8.com
1 w$ Q- y9 k( U8 |1 I' ^, M2 x; f& Q% p; \
作者:徐焱 陈俊杰 李柯俊 章宇 蔡国宝出版社:人民邮电出版社出版时间:2021年08月 ! E6 @1 V( {, c# U! I' g7 O) Y
l* ^$ O0 l+ i Z
编号:189-P9999【Java吧 java8.com】
7 C! c9 t% ~9 i+ Q2 x+ J* T! q, ~+ [+ E4 U4 G7 ]
) m8 ^2 w+ K7 f) L9 D8 o, Z9 K2 H% i, q! W [: N J" C
Java电子书目录:第 1章 初识Java代码审计1
O2 k) t- X, p+ @) V S+ Q1.1 代码审计的意义 1
J( I: p+ m y$ `1.2 Java代码审计所需的基础能力 3
; G9 N! B/ Q% _( O1.3 代码审计的常用思路 4
, _* j5 ?, s2 w, F& ?1 ]) L第 2章 代码审计环境搭建 53 G" f' |* G8 Z+ Y3 [- x6 F
2.1 JDK的下载与安装 5
$ i D" I) V/ R, L# Q k2.1.1 JDK的下载 5
3 L5 O9 R2 X) T! H2 x2.1.2 JDK的安装 6: V& X( i+ p. u* T* x- d% P
2.1.3 添加JDK到系统环境 8
5 q- Z6 m* M1 D8 r D% [2.2 Docker容器编排 10, D( Y/ f4 F$ K5 g% ^
2.2.1 Docker基本原理及操作 11
]4 ^: g. z9 x2.2.2 使用Vulhub快速搭建漏洞验证环境 21
, i5 F. I& x, e) q2.3 远程调试 24
2 Y9 Y }# O; `2.3.1 对Jar包进行远程调试 24
% `' O# ?( @" r7 P2.3.2 对Weblogic进行远程调试 27" c s7 g. g8 |, b' K. N! k
2.3.3 对Tomcat进行远程调试 31- Y6 O# P2 [9 r. S; m" h+ l) ]
2.3.4 VMware虚拟机搭建远程调试环境 35
/ R' p. X$ g: o; ?9 R3 F2.4 项目构建工具 35
# _( f% m8 g/ s5 f1 \ M2.4.1 Maven基础知识及掌握 36$ Y( B \& e* S# U" a# s
2.4.2 Swagger特点及使用 40: q0 n3 A0 \) V7 ] q& L
第3章 代码审计辅助工具简介 41
& R# J9 c: @$ P* t9 w1 i# c: Y( I3.1 代码编辑器 410 ~8 X& H6 q3 T9 S$ g# y
3.1.1 Sublime 41( Z: Z/ _# s1 `, H$ ]0 `6 q
3.1.2 IDEA 423 u0 M. f @' V2 C0 ?# ~* }
3.1.3 Eclipse 43; D7 d, k0 a4 B/ C$ b& ~
3.2 测试工具 43
- b+ h+ \0 k5 ?( k3.2.1 Burp Suite 43& [4 k" T! c' c' ^+ ?% E
3.2.2 SwitchyOmega 46$ B# `2 |6 D U1 U. k4 s- Q
3.2.3 Max HackerBar 478 s$ b8 L0 ]$ z2 C' u& S8 u
3.2.4 Postman 48+ s1 z$ O1 J: k6 u% V' d& U0 X* u
3.2.5 Postwomen 49& ]+ T# ]: M- k9 T- @/ T, l+ l
3.2.6 Tamper Data 49& f6 N/ t% p. Q8 p
3.2.7 Ysoserial 50% {, S) U9 D! m- H
3.2.8 Marshalsec 50, E% @, W! F) F# `: x- f, D5 U
3.2.9 MySQL监视工具 51
. C5 P1 w- k G% x3.2.10 Beyond Compare 554 T8 u1 q( m8 t, f3 h# y
3.3 反编译工具 563 ^ v' @4 r2 j D6 X& U$ p
3.3.1 JD-GUI 56
" Y% ^% \0 @7 U/ Y& p5 f3.3.2 FernFlower 56
- x/ T- W' V6 Z3.3.3 CFR 57' s, s# e- `3 q- e- m; F t( `
3.3.4 IntelliJ IDEA 58/ b6 _( n: M B- I
3.4 Java代码静态扫描工具 58, H% c9 R$ \* j2 t! T
3.4.1 Fortify SCA 58* A5 Z& U9 }* G4 c: D
3.4.2 VCG 59
0 J& d. Q/ f/ A8 k( V. X. ~# m3.4.3 FindBugs与FindSecBugs插件 60/ M) H+ U0 V% Q% W
3.4.4 SpotBugs 60
) X) d/ e. P8 r. P; b, |) @3.5 公开漏洞查找平台 61
' w6 W( Q7 m" ~' J! R& m0 z, N3.5.1 CVE 61
$ R& {2 l0 z- E0 \9 ?: E3.5.2 NVD 62
, n6 p$ \, R: ] m+ c9 {: r( ~3.5.3 CNVD 63
$ `8 Z' k W: h. R3.5.4 CNNVD 63
/ U: a5 J( }8 G" A# V! j# u" `3.6 小结 64, M3 G+ \2 w. s3 i* k% n( }6 O1 i
第4章 Java EE基础知识 65
) B- q3 [5 ~8 j6 b2 v4.1 Java EE分层模型 656 g! F& d# a9 M* ] n
4.1.1 Java EE的核心技术 66% P% o, ]. w' h* O
4.1.2 Java EE分层模型 66
, {* o) E! h- y) ^/ m5 Z3 a# U4.2 了解MVC模式与MVC框架 67: Q: J! V8 o! h6 Z' j
4.2.1 Java MVC 模式 687 I4 g5 R Q2 G
4.2.2 Java MVC框架 69; G a$ E& ?. c, x$ a" G9 y
4.3 Java Web的核心技术—Servlet 70, R0 e, |5 [1 M, y
4.3.1 Servlet 的配置 702 p2 i! ^5 `# U+ Q& d: \ } [
4.3.2 Servlet的访问流程 73
! I" n2 B4 _0 c. m4.3.3 Servlet的接口方法 733 Q% e& M! K1 G6 I
4.3.4 Servlet 的生命周期 76 C, }0 S. z7 ^, f
4.4 Java Web过滤器——filter 77
$ S" [8 C! y1 [8 N4.4.1 filter的配置 77
6 w% B! a! A: z1 Z% }4.4.2 filter的使用流程及实现方式 79
* z1 z- |6 t! v" z2 p4.4.3 filter的接口方法 80& X3 u. ~2 k. w1 y
4.4.4 filter 的生命周期 82
) p$ k' C$ c: {0 ` e! z4.5 Java反射机制 82
% p7 b2 q9 g! C1 ^4 {9 C; Y" E4.5.1 什么是反射 83
" }: C; x4 C5 l4.5.2 反射的用途 83
! l+ e4 D4 f# C5 e2 k: X4.5.3 反射的基本运用 84
3 i. ]+ X/ k# P! E4.5.4 不安全的反射 91! _9 \4 |# r% D
4.6 ClassLoader类加载机制 92
; v0 {4 h& J+ c1 F4.6.1 ClassLoader类 92
, B- O k' a7 \4.6.2 loadClass()方法的流程 93
7 A( v# \! B: n# j# t4.6.3 自定义的类加载器 94; z8 h4 {; D0 E1 A1 B( J7 ^
4.6.4 loadClass()方法与Class.forName的区别 955 G3 G! S# ^% W1 j7 K
4.6.5 URLClassLoader 965 H' A* U- R. e, t9 F6 B# `9 K% H
4.7 Java动态代理 97
# U, s; r* ] [6 Z7 `) E, u# G4.7.1 静态代理 97
" H4 J, V: P. l& S% P4.7.2 动态代理 98; S9 z5 X( K1 K* u- m
4.7.3 CGLib代理 100, ]# c; y" s2 C& }& S+ c# B
4.8 Javassist动态编程 101
* u8 b3 e; r& \9 D4.9 可用于Java Web的安全开发框架 103
2 z1 O4 d& l: T$ [" w) ~+ C4.9.1 Spring Security 103
$ t. v' e! h* _4.9.2 Apache Shiro 104
8 B; ^) |! G* z3 y4.9.3 OAuth 2.0 105
/ |; r; m& U( @. Y/ B v4.9.4 JWT 1072 m5 L: \4 E9 w8 O
第5章 “OWASP Top 10 2017”漏洞的代码审计 109
5 a* Z; o* R: s! j, O5 a. c5.1 注入 110
" Y/ Q% C8 O) T9 i8 I. m5.1.1 注入漏洞简介 110
: e' J( J% J: G5.1.2 SQL注入 110& k3 {& \5 Q, s0 J+ P
5.1.3 命令注入 117
, x; k! y4 ?4 w2 E. s5.1.4 代码注入 121
5 A+ O2 u/ m: Y2 N( }8 [5 ~0 I: t1 R5.1.5 表达式注入 125
% d8 C' N' A4 n6 I3 o5 ^3 k5.1.6 模板注入 1305 I* J% f& R) o5 L: B1 l
5.1.7 小结 133
, J! ]& o9 t8 Q9 P8 d5.2 失效的身份认证 134
% [3 u, p5 t" J8 O+ [& M7 c* g5.2.1 失效的身份认证漏洞简介 134" T* R. p$ N" ~. r, P" I0 C
5.2.2 WebGoat8 JWT Token猜解实验 134) n( j2 G0 o7 t* r1 L) J: m/ h
5.2.3 小结 141: i+ ?7 ~' t4 X) A/ U) ]
5.3 敏感信息泄露 142/ t* ?* S# e- T; D$ R* Y
5.3.1 敏感信息泄露简介 142
5 S- ^* h P8 K6 A+ x) h2 ?: F5.3.2 TurboMail 5.2.0敏感信息泄露 142
) L# |9 ]! H' S' V. d$ }5.3.3 开发组件敏感信息泄露 146
. Z. G( m$ q8 C8 y; @* G' u2 D' A5.3.4 小结 146! B0 A( e/ q9 X6 x
5.4 XML外部实体注入(XXE) 147
) `9 \/ z3 N: b; ]9 X' h5.4.1 XXE漏洞简介 147; z+ k3 Y4 D" B+ r, Z
5.4.2 读取系统文件 148) ~- F4 F3 G. x
5.4.3 DoS攻击 150
. g7 p; F3 V7 Y" A" C9 b5.4.4 Blind XXE 1513 t% }7 B* H$ R* N8 L+ v
5.4.5 修复案例 154
3 B- F' k% _8 w( Z/ C5.4.6 小结 1564 P* f! K' |4 }' F) `& L6 e# r
5.5 失效的访问控制 1577 b5 A) u9 }, n$ w0 d
5.5.1 失效的访问控制漏洞简介 157
5 t0 n M2 ?8 l- P) G5.5.2 横向越权 157. {) Z5 j4 [5 c. }; R
5.5.3 纵向越权 1646 k. N' A) Y& H, U0 I6 m
5.5.4 小结 168
( T7 z/ W. s9 y& D6 j+ Q5.6 安全配置错误 168, Z; R) ?/ i& M0 n
5.6.1 安全配置错误漏洞简介 168
+ \5 L0 q e/ Z: o* Q* v5.6.2 Tomcat任意文件写入(CVE-2017-12615) 169- N- Q, n5 a }7 U7 v
5.6.3 Tomcat AJP 文件包含漏洞(CVE-2020-1938) 173
; _) G: R$ ^. F5.6.4 Spring Boot远程命令执行 192
, i' P6 n! _4 h, F) D2 |1 {5.6.5 小结 203
1 u( e8 z8 c; c9 |6 J8 O5.7 跨站脚本(XSS) 2030 j" w! A; E% j/ ^( a
5.7.1 跨站脚本漏洞简介 203: b5 [) U2 x! H
5.7.2 反射型XSS漏洞 204
U! d# x4 @. p& f9 M+ }5.7.3 存储型XSS漏洞 206
, m& O M$ a4 @% H8 F; o& p: ^5.7.4 DOM型XSS漏洞 2115 Z7 k6 C, c. T: ]( Z' f2 q. G
5.7.5 修复建议 212" f) h, g( A- ]% J' ~& d
5.7.6 小结 212+ C8 e4 i4 i( F
5.8 不安全的反序列化 212
) M# P8 r5 \8 s5.8.1 不安全的反序列化漏洞简介 2121 r" I. @: }% }. I, F" u% }1 v
5.8.2 反序列化基础 213java吧 www.java8.com4 l9 X+ V$ j. \! T) Z
5.8.3 漏洞产生的必要条件 2142 w( m$ s0 d( ]) h- q$ `# z
5.8.4 反序列化拓展 215
3 B L0 D- p1 l: d0 O' H( ~5.8.5 Apache Commons Collections反序列化漏洞 218
/ ~0 o; X& C8 S9 r; T( T7 w5.8.6 FastJson反序列化漏洞 225
C2 r$ e1 D, ]5.8.7 小结 235
2 v" P5 \! T4 g$ i7 i5.9 使用含有已知漏洞的组件 235
% Q' P/ \9 c0 P: r5 s5.9.1 组件漏洞简介 235, ^- U' t4 {4 u+ |% F/ @$ a. F
5.9.2 Weblogic中组件的漏洞 237
, j! ^$ V) r9 E2 }5.9.3 富文本编辑器漏洞 238
: }, n2 f% H/ |3 {5.9.4 小结 241
* Y# E( ^& j( Z: ~6 Z5.10 不足的日志记录和监控 241) U3 V T. |+ B9 Y/ Z, b
5.10.1 不足的日志记录和监控漏洞简介 241* ^# m/ S7 u# U$ I7 J* B8 K
5.10.2 CRLF注入漏洞 2422 O5 i4 `3 a$ n$ w4 ?+ e
5.10.3 未记录可审计性事件 243
% ~4 O- P* W" r. d5 p! l( Z' s# @5.10.4 对日志记录和监控的安全建议 244
9 s& {& h. G2 ?) M5 {/ q5.10.5 小结 2445 }) Y, o# e- U) R- X9 f
第6章 “OWASP Top 10 2017”之外常见漏洞的代码审计 2453 X, c8 ?' `/ G% b; q3 O% E7 Q" m
6.1 CSRF 2452 O- t& ~% n$ }( F2 i' D$ K5 j
6.1.1 CSRF简介 245% q9 W( Z% T4 L3 Q- S
6.1.2 实际案例及修复方式 2467 d$ ^* R& c5 C4 b8 B
6.1.3 小结 249, u( O$ A# _0 Y \9 l6 g# f# Z
6.2 SSRF 249* [- T8 Z/ c) n" l! O: }" L
6.2.1 SSRF简介 249
- l4 w# Z' a' }/ q/ X6.2.2 实际案例及修复方式 250* O% }0 j' z: P, u, f6 d
6.2.3 小结 262# j- o+ u% }8 U h# R
6.3 URL跳转 263
) F8 X ^) _# `: A" i) x6.3.1 URL跳转漏洞简介 263
0 M5 O) B. N: u8 S, P. e6.3.2 实际案例及修复方式 264; T% F4 F% P% z- `) j! }: g/ [
6.3.3 小结 267
. g' z4 l9 ?4 g3 b6.4 文件操作漏洞 267
: t0 W, r5 H3 I3 ]9 f0 f$ ]6.4.1 文件操作漏洞简介 2679 o) Z& k* I+ V3 R4 n9 Y
6.4.2 漏洞发现与修复案例 268
, a; y t5 r& ~: k, d6.4.3 小结 286+ O) z* g: `) b- O0 l& b
6.5 Web后门漏洞 287, R E: {8 o W
6.5.1 Web后门漏洞简介 287# ^' {- F7 f5 f- E
6.5.2 Java Web 后门案例讲解 287
+ u; r8 T* |7 ?- }: p' q, c; V6.5.3 小结 292
# {0 a& X! Q6 M0 d6.6 逻辑漏洞 293
' \3 o; `1 C8 t7 _3 v+ o6.6.1 逻辑漏洞简介 293
$ n4 ]$ G1 s0 k2 u4 n) F6.6.2 漏洞发现与修复案例 293
) l' E& e* p3 K, t2 k, @2 g, `% A. W6.6.3 小结 299- G( Q3 X* S4 f& z/ e; U& u3 O
6.7 前端配置不当漏洞 300
+ d3 I/ L$ e; S# i( {: X9 D( Z6.7.1 前端配置不当漏洞简介 3005 t) n& n3 K, x K4 B$ z
6.7.2 漏洞发现与修复案例 300
! D( T6 v) I. X* q! k7 S5 f6.7.3 小结 305
% e( i. j3 G/ A7 g7 `; M) E) G6.8 拒绝服务攻击漏洞 305
1 ~' `; b8 f& C: [. Y& c6.8.1 拒绝服务攻击漏洞简介 305: q, d2 P7 n( A. G4 \' l
6.8.2 漏洞发现与修复案例 306! X/ n# H5 v+ r ~) Z1 ^" r
6.8.3 小结 322: J1 H5 R3 c) m+ `
6.9 点击劫持漏洞 3233 ~& h$ p/ y" S2 U
6.9.1 点击劫持漏洞简介 323
) A9 d) o2 s; s9 _6 K: F5 s3 j6.9.2 漏洞发现与修复案例 324
7 }4 D! q, R$ Q) S, X6.9.3 小结 3279 |$ c1 \1 f" Z' X
6.10 HTTP参数污染漏洞 327& z' C/ Y2 Z; P' V
6.10.1 HTTP参数污染漏洞简介 327, N) \, g% Z' i& Z" l. w
6.10.2 漏洞发现与修复案例 328; \- y% Y! j5 ?( L
6.10.3 小结 3300 l0 K d4 Z0 k; A1 O
第7章 Java EE开发框架安全审计 331- C2 L6 H5 Y. O$ K6 l: o
7.1 开发框架审计技巧简介 331; Y3 z0 E5 v$ G, b6 ^ G
7.1.1 SSM框架审计技巧 331
/ g; r; u) i* q5 T1 Q6 Q7.1.2 SSH框架审计技巧 360
/ x( _) N- a7 @5 B1 r! ^5 ]3 Y7.1.3 Spring Boot框架审计技巧 373/ b. |5 J. H1 X' n
7.2 开发框架使用不当范例(Struts2 远程代码执行) 377* Z1 T. ?' W6 ~, T
7.2.1 OGNL简介 377
) Z7 i% j" H2 t; ?5 w& @( ^' M# ?7.2.2 S2-001漏洞原理分析 379; c/ z+ T. S4 I7 G
第8章 Jspxcms代码审计实战 390
, S0 r) x8 T/ g4 _' ?8.1 Jspxcms简介 390
U. `; \1 u4 }% V1 }8.2 Jspxcms的安装 391
: X. J- ?7 i; I7 i8 G& `+ ~) M8.2.1 Jspxcms的安装环境需求 391
! n% M& T4 @( p3 b4 L, B/ L: R+ I7 U8.2.2 Jspxcms的安装步骤 391
' j/ a( s8 F' g1 X9 G8 u V8.3 目录结构及功能说明 399# n1 ?& a9 f* ]& E
8.3.1 目录结构 399
# w; j/ O. Y! \6 y" z0 N6 l4 r8.3.2 功能说明 402
! D! T3 H a+ r6 k8.4 第三方组件漏洞审计 406
7 S$ I- M* O- r! c8 T8.5 单点漏洞审计 408( d' `3 s! B" u1 k( b4 C# E
8.5.1 SQL审计 408
' }1 s! R! n4 G8.5.2 XSS 审计 411
$ I$ N, J3 D+ m; K8.5.3 SSRF审计 418) M3 @/ N7 J0 P5 w( D/ } y) N
8.5.4 RCE审计 431
. a0 m+ R+ U& n" X5 o$ ]8.6 本章总结 440, M4 u8 L1 j+ z
第9章 小话IAST与RASP 441
! W: t% x$ c0 s( R% R9.1 IAST简介 441
9 J9 @! {0 q6 M9.2 RASP简介 4431 m; @$ n6 l |/ ]+ S9 ~. u
9.3 单机版OpenRASP Agent实验探究 444- G& {; e7 q! U' x2 L7 j3 M! O
9.3.1 实验环境 444# H3 Y5 }' B9 h- A+ p4 N5 ^$ t6 K
9.3.2 实验过程 444
+ u8 U! n. G/ K0 g9.4 OpenRASP Java Agent原理浅析 448
) Y1 }/ p& E+ M' }7 y' V5 t8 B6 c9.5 本章总结 4525 M' ~! b4 s5 W8 z% H: k/ c, ^
附录 Java安全编码规范索引 4536 i0 h* o: W a! U% K
百度云盘下载地址:2 P; o, l% }- E
版权归出版社和原作者所有,链接已删除,请购买正版 购买地址:http://product.dangdang.com/29273747.html
6 [( x: ]# A2 k1 y1 W; J/ K( [: T |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|