|
Java电子书:Java代码审计 入门篇 PDF 电子书 Java吧 java8.com
; V) h* p4 C) ?: u* B- j4 s8 o) U
6 |* Q- o* L2 g A: a5 X7 r- G- \+ ^" e( _作者:徐焱 陈俊杰 李柯俊 章宇 蔡国宝出版社:人民邮电出版社出版时间:2021年08月 % M# R9 l7 s/ E# p3 E5 ?# a
7 q+ g2 ?' i0 T2 u+ }
编号:189-P9999【Java吧 java8.com】/ K! G9 d$ j/ E( `* S4 H' ]
4 G: T6 L$ n4 _5 p- [
9 v1 l( n7 G" N/ z2 @0 H1 d3 E6 D0 S* e5 V7 v, A7 o
Java电子书目录:第 1章 初识Java代码审计1
; m. L! U+ C- o0 `1.1 代码审计的意义 12 A7 R7 F: @6 \0 I) L& ~
1.2 Java代码审计所需的基础能力 3
/ K1 @1 o& {9 B" g6 h+ _2 r/ a1.3 代码审计的常用思路 4
+ M% L; o: k# ^ v' C3 K第 2章 代码审计环境搭建 5
3 e( {2 G9 |) g0 q) `# y5 d2.1 JDK的下载与安装 5+ T3 m2 m! E, S1 W2 a
2.1.1 JDK的下载 5
[ L/ {$ Y+ ^ B) D) {2.1.2 JDK的安装 6% N$ b( S8 R& S0 T5 [1 H
2.1.3 添加JDK到系统环境 8- V$ t2 G" `; _& K
2.2 Docker容器编排 10
# @- ?. o$ T, G0 ^: ^) p2.2.1 Docker基本原理及操作 11
6 o' R% B: U' l" X7 ^! ^6 L+ P2.2.2 使用Vulhub快速搭建漏洞验证环境 21: E1 I! M2 g: C3 Y; g; \2 r! A
2.3 远程调试 24! A s9 s- O# o# ] G- b8 N
2.3.1 对Jar包进行远程调试 24
( m; J+ K o7 A+ }+ n3 n- Q2.3.2 对Weblogic进行远程调试 27
- B. W" o/ _& P% f% V6 v. R2.3.3 对Tomcat进行远程调试 31
6 s) z! T9 N3 ~; M- w! i2.3.4 VMware虚拟机搭建远程调试环境 355 g% H' T/ W& X% ]* l8 U6 i
2.4 项目构建工具 35
+ k+ q* s! C6 u3 ^1 U9 N2.4.1 Maven基础知识及掌握 36
( i, w5 ^. v7 U7 o" z I2.4.2 Swagger特点及使用 40
* u+ q- r; g# a第3章 代码审计辅助工具简介 41
; m( ~7 d9 M* f. T5 r4 [0 w7 T3.1 代码编辑器 41
# e0 u9 Q# c5 O. u, a' i3.1.1 Sublime 41
1 U) N% Z0 N& z3.1.2 IDEA 421 D# d7 x$ |& `- V+ A: Y
3.1.3 Eclipse 43' r9 }* X! Y$ \, A; [# T8 L6 m! g6 Q
3.2 测试工具 439 J& A. l7 F1 p: F% R
3.2.1 Burp Suite 43
# Q% k) {$ Q* T) R6 @- L3.2.2 SwitchyOmega 46' R; \, O: Q. R: t
3.2.3 Max HackerBar 47$ i2 S& \& K" ?, N
3.2.4 Postman 48
8 h% P: `7 E. u. ~* {3.2.5 Postwomen 49% }, `$ K `7 |. ^ K J" ~& d U5 O
3.2.6 Tamper Data 49
6 N/ c% z9 f& V3.2.7 Ysoserial 50
. n6 d. }$ o: ?- m1 d; [7 v4 ]3.2.8 Marshalsec 50
2 ?% H3 _- J/ B0 Y8 o$ ?3.2.9 MySQL监视工具 51: B: O$ O Z- ] F9 d
3.2.10 Beyond Compare 55* r x2 f: G2 B. }5 K, q5 \# B
3.3 反编译工具 56, o0 b0 N8 z' M# j1 a
3.3.1 JD-GUI 56. C i. @4 _" ?8 D7 ~8 r) E
3.3.2 FernFlower 56
0 |# [! `* _1 _5 P2 s3.3.3 CFR 57
5 n; Q) q* e, E7 ~3.3.4 IntelliJ IDEA 58
9 z- I! V# r+ M; U8 y+ W, L& ?3.4 Java代码静态扫描工具 582 ~ O* c* u+ E
3.4.1 Fortify SCA 58
9 x, O- ^- b- }) h) V3.4.2 VCG 59
9 e3 q# B& ?' u. k6 ^3.4.3 FindBugs与FindSecBugs插件 60
0 T# e( ^6 L! P5 |% F3.4.4 SpotBugs 603 J0 u, u& |2 w. w6 `8 U! x
3.5 公开漏洞查找平台 61" p3 q8 s" z/ P7 D* x/ \" G4 m! {- [, {
3.5.1 CVE 61: ]6 q9 ?0 O+ C
3.5.2 NVD 624 P4 V* ]9 e+ m: Y9 ]
3.5.3 CNVD 63
0 K/ @5 p$ o2 H/ |3.5.4 CNNVD 63$ p. H0 ?; k% p6 R3 P6 A' l
3.6 小结 64+ ~, ^0 {; w8 F
第4章 Java EE基础知识 65' t# Z. z# L- L) O* d6 W9 |
4.1 Java EE分层模型 65
- h$ S: U- d8 s! F) R( j4.1.1 Java EE的核心技术 66
1 x, L! V% f! h1 E( ~$ I4.1.2 Java EE分层模型 66
' y% o3 g: g! u+ Y5 D# X J4.2 了解MVC模式与MVC框架 67
) a* l: ], X0 }, c: X4.2.1 Java MVC 模式 68# ~& A6 i# L9 b
4.2.2 Java MVC框架 69
2 B# s. U e' L- a4.3 Java Web的核心技术—Servlet 70
3 L ~% Y# M- x$ ^! e8 w4.3.1 Servlet 的配置 705 d e! M( Z7 Z+ [: l0 x
4.3.2 Servlet的访问流程 73
0 i, G6 m4 w+ a8 f) L4.3.3 Servlet的接口方法 737 C3 U( h8 w; K0 E' D0 G
4.3.4 Servlet 的生命周期 766 ^" s8 m; f- c: e! h$ H1 [
4.4 Java Web过滤器——filter 774 b& @/ d- P* w+ u8 ]4 z
4.4.1 filter的配置 77
; K. F8 P4 h7 A& Y4.4.2 filter的使用流程及实现方式 79
1 x6 x, _! w) \9 v3 c4.4.3 filter的接口方法 80$ \4 v, I/ M& z, {& m! F
4.4.4 filter 的生命周期 82
2 `4 i* ]: ^0 ^) s5 [' {" I. z4.5 Java反射机制 82
4 V4 p0 D) a2 @: A+ D7 R! G4.5.1 什么是反射 83
! @# F7 V% M5 B8 E4 W u4.5.2 反射的用途 83
, ~, w3 p* h: k* y' K4.5.3 反射的基本运用 845 _2 e) Y' ?( y4 d; m
4.5.4 不安全的反射 912 J+ y0 }( K9 k4 I1 z
4.6 ClassLoader类加载机制 92
& Z( E/ L2 M! q4.6.1 ClassLoader类 921 f& P; L6 [; @- Z$ S3 X1 |
4.6.2 loadClass()方法的流程 93
2 y2 f: C) q0 D4.6.3 自定义的类加载器 94
4 }9 ~4 V2 x; f7 ]* s3 \& m4.6.4 loadClass()方法与Class.forName的区别 95
: E' |; I; x" l) K/ @4.6.5 URLClassLoader 96
f1 a% {* `& t, _. q4.7 Java动态代理 97
( B( m1 E1 O# v& a5 I4.7.1 静态代理 978 ^7 C: J( _% f* F4 n
4.7.2 动态代理 98
1 q" T+ j6 ]0 S. g4.7.3 CGLib代理 1006 F( |/ ?2 g9 y4 Q: Y
4.8 Javassist动态编程 1011 M! _6 L d$ m. i% T
4.9 可用于Java Web的安全开发框架 1031 H, K: _' a, ~, Q3 K- {
4.9.1 Spring Security 103" j' `9 v2 g9 R! T1 c* }8 Z4 h
4.9.2 Apache Shiro 104
. ^6 H/ t+ r# \; q# `$ G4.9.3 OAuth 2.0 105
; D* V$ W) N6 p, s% e/ z! c4.9.4 JWT 107
9 l ^. I8 ^, H9 l6 N( X第5章 “OWASP Top 10 2017”漏洞的代码审计 109 x* {9 i9 y! \. ^8 I
5.1 注入 110' K- Y8 O# ~; P- \5 X
5.1.1 注入漏洞简介 1109 n( A" f E. z9 g' z2 V: X# G
5.1.2 SQL注入 110; ]9 q! [0 i" ?% A" |6 M" X# @
5.1.3 命令注入 117
3 z' B+ b3 h- w5.1.4 代码注入 121( f3 w# n3 B1 j( {) T, n
5.1.5 表达式注入 125
) [' t, S2 _. [1 h5.1.6 模板注入 130& R ? e0 _# I2 p
5.1.7 小结 133
8 W& h: H$ L+ m5.2 失效的身份认证 134
/ Z. r- f- Y1 H3 E q8 n7 x) C. Y( Z5.2.1 失效的身份认证漏洞简介 134
& {) x3 z# k: T9 f! _" F" [5.2.2 WebGoat8 JWT Token猜解实验 134
+ U' s6 m% Y0 G6 F1 Q+ @5.2.3 小结 141' ^& e* [- @9 ~7 h/ i8 Z3 Y j0 ?, `
5.3 敏感信息泄露 142; A' ]' y5 a8 k1 B" I( W
5.3.1 敏感信息泄露简介 1424 x* L( y8 G* O4 \
5.3.2 TurboMail 5.2.0敏感信息泄露 1421 V- I/ Y3 v9 O, X
5.3.3 开发组件敏感信息泄露 1464 Y$ @) e H: ?. I& C( H' [
5.3.4 小结 1467 U3 B6 Y- y# q$ y2 I4 r
5.4 XML外部实体注入(XXE) 1477 { u c* Y6 q3 b# j( s! R
5.4.1 XXE漏洞简介 147
# f: m0 D8 c. k0 t2 y5.4.2 读取系统文件 148
# _( S6 s2 a" {) d5 J- y) P8 S5.4.3 DoS攻击 150
, h# |& ^; o$ F$ G, ?8 K5 Z5.4.4 Blind XXE 1518 x6 [( b! {; Z3 Z, v4 O
5.4.5 修复案例 154
; \# a5 I6 }4 G$ l+ G5.4.6 小结 156# A" b( P8 m V4 L1 b1 m8 ^: z7 ?
5.5 失效的访问控制 1572 D7 y4 i+ [4 Z" [/ q% g: i) E
5.5.1 失效的访问控制漏洞简介 157
3 X0 @9 q3 K3 D; v! M& F3 R" g5.5.2 横向越权 157
, C2 z. W0 x8 j- \, ~5.5.3 纵向越权 164
- l `* R+ W2 L, U7 O; k. z5.5.4 小结 168* A/ S" W# E/ o! w0 V
5.6 安全配置错误 168
3 |& h5 h2 O7 a5 ~$ u5.6.1 安全配置错误漏洞简介 1683 f1 c. X) F0 J% z, N d
5.6.2 Tomcat任意文件写入(CVE-2017-12615) 169
1 e2 V7 K' Y0 j2 x. X: `. f/ Y5.6.3 Tomcat AJP 文件包含漏洞(CVE-2020-1938) 1732 y/ \) l# V! ]+ w( ^1 c& C. z/ \( n
5.6.4 Spring Boot远程命令执行 1926 t. Y1 k: d2 r
5.6.5 小结 203! {* V' }% O w2 B$ C2 u
5.7 跨站脚本(XSS) 203: U- X" h9 [7 z: l' u6 ?$ r
5.7.1 跨站脚本漏洞简介 203
8 ~" }( T* l% i# r' }4 `5.7.2 反射型XSS漏洞 204& P% I2 u% ~; L9 ^1 [9 B
5.7.3 存储型XSS漏洞 206
9 Q4 n7 d/ [0 B+ O4 m4 `1 V5.7.4 DOM型XSS漏洞 211
! d: f; p7 a# T0 h/ r6 g3 u5.7.5 修复建议 2126 E1 _" y( |6 B0 |( p, f4 d
5.7.6 小结 212
, X/ _' m9 w3 R5.8 不安全的反序列化 212
( }: b! \6 @; F) r+ B- ^5.8.1 不安全的反序列化漏洞简介 212
( H6 X4 }; [1 e2 d5.8.2 反序列化基础 213java吧 www.java8.com
9 c6 S& R1 N. I9 h: S0 ?" k5.8.3 漏洞产生的必要条件 214
& G' d1 I0 z1 D* `2 }. z5.8.4 反序列化拓展 2151 |3 w0 B$ Q. l1 j1 y
5.8.5 Apache Commons Collections反序列化漏洞 218# ^. [: l1 E% _; C9 l; C
5.8.6 FastJson反序列化漏洞 225
9 r) l3 |# a$ L: Q5.8.7 小结 2354 Z" m5 @& U o4 X0 c+ _
5.9 使用含有已知漏洞的组件 235
# F% ~% C# W' W' K) ^5.9.1 组件漏洞简介 2350 ~9 N$ c3 e) ?& g( A' j" v, Z
5.9.2 Weblogic中组件的漏洞 237
- P s; o6 w& k* Q1 i% f5.9.3 富文本编辑器漏洞 2382 n a. H0 e, D( w9 W: y
5.9.4 小结 241
, \/ o- @7 M! U+ Y6 j5.10 不足的日志记录和监控 241* s. r! x8 g' [ C
5.10.1 不足的日志记录和监控漏洞简介 241* f, S- p& ^+ W# @: B
5.10.2 CRLF注入漏洞 242) L2 [" ^- U2 U! N% v
5.10.3 未记录可审计性事件 243
* r! T: x! F* r5.10.4 对日志记录和监控的安全建议 2443 [, Z( e. S7 ]! v& U& i
5.10.5 小结 2448 q9 _& ~0 U0 h0 ?
第6章 “OWASP Top 10 2017”之外常见漏洞的代码审计 245
# E5 y* f+ V' t' {6.1 CSRF 2456 k% s$ D) p& H4 L$ @/ K
6.1.1 CSRF简介 245
2 Q3 c' J" c6 \1 J6.1.2 实际案例及修复方式 246$ ^0 q, h4 Y" P0 w
6.1.3 小结 249" D5 t* q6 B: n' x, b
6.2 SSRF 249
) X% ?2 D( c2 g3 B6.2.1 SSRF简介 249 d" p' I8 t0 e" L- I8 _
6.2.2 实际案例及修复方式 2500 N% j) S% `! N
6.2.3 小结 262
" R$ v" j5 m V5 p& t4 Y! c U4 v% f6.3 URL跳转 263- E, ^& O x }- _$ R
6.3.1 URL跳转漏洞简介 263
e b; Y% y1 u) c4 O g) C( t6.3.2 实际案例及修复方式 2644 `( A- o% K& H0 N) e1 m6 Z
6.3.3 小结 2674 q, ^( T6 F6 ^6 ^% t5 b
6.4 文件操作漏洞 267
0 }& k2 E2 E9 C( c6.4.1 文件操作漏洞简介 267' [! B* t/ y, b, \% J! v$ O
6.4.2 漏洞发现与修复案例 268
* ]4 r' ?% e }& e4 y% E6.4.3 小结 286* d2 A# C( r0 z8 o, p; W* w
6.5 Web后门漏洞 287
; `3 D& I, \- o# W1 t6.5.1 Web后门漏洞简介 287
! R& `, a: X# b) v2 c6.5.2 Java Web 后门案例讲解 287, W9 @; Q2 }; d7 f( e4 r
6.5.3 小结 292, E8 @" K1 Q' J' L! y- L
6.6 逻辑漏洞 293" o$ E9 k7 R$ g u& @1 J% i
6.6.1 逻辑漏洞简介 293
: z. w. z; {# h+ n# t! X; y z6.6.2 漏洞发现与修复案例 293
3 o1 @- t( C2 [" n6.6.3 小结 299
. E. U% ^7 N) m* j9 Q4 e, \4 K6.7 前端配置不当漏洞 300( \5 ?. M4 r. t) Y- x
6.7.1 前端配置不当漏洞简介 300
: w3 P Q) k' N6.7.2 漏洞发现与修复案例 300# {7 i' r5 N- Z6 h8 P
6.7.3 小结 305
0 o; ?: _2 A7 i2 x& A" T6.8 拒绝服务攻击漏洞 305
' V' I2 w! p; I% e: u& F* k6.8.1 拒绝服务攻击漏洞简介 305% r) ?, p0 z- {$ E. p* x
6.8.2 漏洞发现与修复案例 306
. V, [* B* t' V0 G) t6.8.3 小结 322
p2 x7 Q5 B4 [* a6.9 点击劫持漏洞 323, s9 r0 I: ^' H9 w( G1 s
6.9.1 点击劫持漏洞简介 323
( S. g# }$ d @6 i$ |6.9.2 漏洞发现与修复案例 324; m/ T# J f: e2 U: w
6.9.3 小结 327
: v( X& N) f8 m, H0 O6 O6.10 HTTP参数污染漏洞 327
" j3 F ?$ _$ u9 y! @4 ^# O6.10.1 HTTP参数污染漏洞简介 327 U" r6 D. }' i: N
6.10.2 漏洞发现与修复案例 328
! @) D, k1 D% b# N. v& [6.10.3 小结 330
1 g! F; J! {8 _2 V! j: l m$ S第7章 Java EE开发框架安全审计 331* G) z/ g* c& P9 g
7.1 开发框架审计技巧简介 331! V4 Z' I" W/ y5 O3 Y
7.1.1 SSM框架审计技巧 331
# P+ B& I" U% m1 V7.1.2 SSH框架审计技巧 360( M' K+ ?1 ^6 w, x/ q$ ?
7.1.3 Spring Boot框架审计技巧 373
, ?6 @# o) C6 m& s K4 }' Y& Z9 k7.2 开发框架使用不当范例(Struts2 远程代码执行) 377: G# @/ H+ R; i! X! |! z2 ~
7.2.1 OGNL简介 377
) i4 n W( V9 \8 S* d. h# V, F; `1 L7.2.2 S2-001漏洞原理分析 379
5 X7 {0 {8 o" T. J8 J3 N9 h第8章 Jspxcms代码审计实战 390& c' _- H0 B9 t$ _' j7 [: n6 {1 G
8.1 Jspxcms简介 390' {) y, F, |+ L# a
8.2 Jspxcms的安装 391# G5 v$ g5 ?4 E: z* J/ B
8.2.1 Jspxcms的安装环境需求 391
1 k2 g# Z0 u# j8.2.2 Jspxcms的安装步骤 391 t8 P* ?4 X2 U9 h7 u+ ]
8.3 目录结构及功能说明 399% z; @% @: ?: A0 k8 t5 ]
8.3.1 目录结构 3994 c- i9 a0 X+ S1 l2 I
8.3.2 功能说明 402
! G, @+ h) e1 L+ I8.4 第三方组件漏洞审计 4067 c5 z% R) o0 ^9 q8 z: w' o D6 y+ b
8.5 单点漏洞审计 408& b9 j( }3 y2 d0 @: w: t
8.5.1 SQL审计 408
& W8 i1 Y- p0 f1 \8.5.2 XSS 审计 411
' [" }8 g6 ~- b9 g: r" s( W8.5.3 SSRF审计 418$ F- q1 n6 Z& p& R8 o
8.5.4 RCE审计 431
) @1 c/ L l) b$ B# E( R8.6 本章总结 4403 l1 a/ G! Y) N0 _& p
第9章 小话IAST与RASP 441
- k; e& Z( G+ B1 P2 I9.1 IAST简介 441 m' ^' s1 x: @
9.2 RASP简介 443$ d0 Q# W2 R( J3 Z% R9 b
9.3 单机版OpenRASP Agent实验探究 444
: Y, V1 k1 Z# A3 a3 S9.3.1 实验环境 444
- v) Y) ^( ` T0 k9.3.2 实验过程 444
4 S$ d" g$ {+ `/ F9.4 OpenRASP Java Agent原理浅析 4482 i) m& K$ y" ^4 j, t" X% A! ~6 D" j9 f7 Y
9.5 本章总结 4523 t- `4 U3 F" _. D: T, T. z
附录 Java安全编码规范索引 4536 b! }. }2 f% n: I
百度云盘下载地址:6 I9 J- F7 S1 N; t
版权归出版社和原作者所有,链接已删除,请购买正版 购买地址:http://product.dangdang.com/29273747.html
+ [& ], Y; K1 z/ G) ^ |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|