|
Java电子书:Java代码审计 入门篇 PDF 电子书 Java吧 java8.com
" G% D7 n5 t1 X+ E v2 _. G9 ]0 i# H S" ^& \2 o
作者:徐焱 陈俊杰 李柯俊 章宇 蔡国宝出版社:人民邮电出版社出版时间:2021年08月 O) @& T' M M T/ u r
* k2 \) S* E3 }1 F7 \编号:189-P9999【Java吧 java8.com】
" t9 y* ~: F% c9 U/ z0 D: E. m% s6 U1 v9 Z/ O7 w, n. }
0 q4 l/ ]; s5 K$ q# B0 y; D2 c3 }8 E8 \" _
Java电子书目录:第 1章 初识Java代码审计1, ^% D! d+ Q) c/ E( F
1.1 代码审计的意义 1
" r# V, i# G' d5 Y% r# \; T1.2 Java代码审计所需的基础能力 3
# s, N# e. x: l! z1 G. f0 J1.3 代码审计的常用思路 4. r* F2 R, t$ N6 v5 a
第 2章 代码审计环境搭建 5" ?" S; K" r; Y+ Y6 Q z/ L
2.1 JDK的下载与安装 5
6 }( C$ h# d. |) o2.1.1 JDK的下载 5
]5 j P+ c, \; \) E2.1.2 JDK的安装 6, e" \8 F {9 d
2.1.3 添加JDK到系统环境 8/ h/ `" E; A9 m2 K
2.2 Docker容器编排 10
- m# s6 E* ^2 L% e3 `& f0 Y2.2.1 Docker基本原理及操作 11
# \: _% u7 R4 U% r8 {7 e% g/ T2.2.2 使用Vulhub快速搭建漏洞验证环境 219 P6 l& |3 D& p0 ~: K
2.3 远程调试 24- c2 |* B3 f, j3 v+ e5 W8 J% ?
2.3.1 对Jar包进行远程调试 24
& C& b! h8 m9 J1 a/ A; a" m* a2.3.2 对Weblogic进行远程调试 27, K) w. G- K8 A! Z' C$ N
2.3.3 对Tomcat进行远程调试 31" K$ \8 v/ \0 y! X9 V5 X' q5 d
2.3.4 VMware虚拟机搭建远程调试环境 35- C! `3 b7 j3 t0 i1 D$ V
2.4 项目构建工具 35
. B+ {; d7 b- ~0 r2 K/ [2.4.1 Maven基础知识及掌握 36
% M/ \$ ^" C2 s+ o0 \$ q$ q7 G* c2.4.2 Swagger特点及使用 40* \; v. D0 u) g3 r. K% {/ v
第3章 代码审计辅助工具简介 41
4 `- X$ ~3 z/ ]" U+ l' p3.1 代码编辑器 41
" j, L: I- ^7 @% R( U1 Z+ P3.1.1 Sublime 41$ e0 Q* k1 [: R9 L. n0 |
3.1.2 IDEA 42* |2 q/ i1 S; I6 l
3.1.3 Eclipse 436 g& s* r8 N3 Z( p- u0 Z4 M
3.2 测试工具 43
; W2 |/ i' F# x% F+ y9 j3.2.1 Burp Suite 432 C/ N. I$ F n w
3.2.2 SwitchyOmega 46
V' m: F0 R6 D. y& w3.2.3 Max HackerBar 47' E6 d* |, J, i/ _ s- ?5 `3 ^
3.2.4 Postman 48( X/ m* Z7 N" @
3.2.5 Postwomen 492 x' u2 h7 Q( x# B; G! I! y! _
3.2.6 Tamper Data 49
. O$ y; @: x( @; C2 c8 d& \( n7 h+ k3.2.7 Ysoserial 50
; Q$ W9 D& C$ W+ q3.2.8 Marshalsec 50
) C6 j. x7 }5 b6 X7 q3.2.9 MySQL监视工具 51
# J, h% s( U& x% G% q/ w& K5 }* A3.2.10 Beyond Compare 55
3 N* x5 ?0 R& p9 ]3 J: r' l3.3 反编译工具 56
- h! ]! P4 J; a3 H0 x- {: j- V3.3.1 JD-GUI 56
2 v% G" a3 k* k/ w) w3.3.2 FernFlower 56
( U" V* r, J1 ?3.3.3 CFR 57
1 W* O) i/ |& j! Q3.3.4 IntelliJ IDEA 58
' M5 l0 Z0 R8 W4 ~0 G" ~3.4 Java代码静态扫描工具 585 t" W, s. y8 J W. w3 y
3.4.1 Fortify SCA 583 B. k7 r3 u2 r
3.4.2 VCG 598 r t9 M; Q! k) c1 h& Q$ t
3.4.3 FindBugs与FindSecBugs插件 60
8 h3 K% d: R" o6 o% m. z$ |. }3.4.4 SpotBugs 60" A2 C1 r$ t! G# h
3.5 公开漏洞查找平台 61
. ~+ L4 n, Q8 s& }3.5.1 CVE 61
# A# ~ [1 {3 F0 g9 T# ^- r3.5.2 NVD 62
: Q% h6 u7 `2 n& }6 Y1 L3.5.3 CNVD 63
( W& X) m1 D( H- Z% S% |& b# |$ H. q& N3.5.4 CNNVD 63
6 E7 }3 m6 F% q9 `9 K0 [+ v( t6 q: Q3.6 小结 645 E4 f6 C6 n# ?+ \% u
第4章 Java EE基础知识 65( B/ L' N4 V% R) Q2 \/ L& |
4.1 Java EE分层模型 65
* X" F3 E. F0 {; C: ?: B M' O4.1.1 Java EE的核心技术 66
; K5 X8 ?3 C1 D2 r4.1.2 Java EE分层模型 66
, }3 o$ L+ T+ F8 s7 T4 g4.2 了解MVC模式与MVC框架 67
, w! P- O' _5 {" l7 S4.2.1 Java MVC 模式 68* M' }, D0 o9 Z2 N
4.2.2 Java MVC框架 699 i" V/ D) a+ e- c0 I
4.3 Java Web的核心技术—Servlet 70/ z/ ]: z ]2 G9 R/ C
4.3.1 Servlet 的配置 70
9 J L7 }5 F, g4 T$ }4.3.2 Servlet的访问流程 73
. f3 A a- r3 Y% t. b4.3.3 Servlet的接口方法 733 E8 B/ x4 G; ]2 d; b( J2 O& R
4.3.4 Servlet 的生命周期 76* G# T+ V& }8 F; `, n U( z
4.4 Java Web过滤器——filter 77( }7 F7 Z3 o+ T9 d$ g
4.4.1 filter的配置 779 ]6 ]7 N% e+ n0 N) D4 Z' V
4.4.2 filter的使用流程及实现方式 795 x2 s5 f& J: v$ e/ R
4.4.3 filter的接口方法 80
6 m/ T" }1 Y* y9 Q4 h+ U4 m4.4.4 filter 的生命周期 82
; H4 S# y5 g1 H; {* P$ S/ V4.5 Java反射机制 82( k; x& I" d8 M- |' v6 S
4.5.1 什么是反射 83; Z# t z, ?" Y2 b n- F0 S* l2 C+ ]% {
4.5.2 反射的用途 83
) v$ K4 _9 n" D/ P. s4.5.3 反射的基本运用 84
5 L8 H6 S: l7 O$ O8 Q. z: h4.5.4 不安全的反射 91( r( p6 b5 i& m. N9 C" e
4.6 ClassLoader类加载机制 92
6 w `0 ?! [6 U" v! H4.6.1 ClassLoader类 92
3 M( q. A8 n" a: d; n7 J4 d4 _0 G4.6.2 loadClass()方法的流程 93
# X/ r7 U/ H+ i% `0 B0 p4.6.3 自定义的类加载器 94
) Z% Q& D* G$ I/ N/ S/ `0 d! m; I4.6.4 loadClass()方法与Class.forName的区别 95- M4 y- H) j- c( O# z# F
4.6.5 URLClassLoader 96
% Z, c5 Z" A) J- h6 `9 f P3 ]3 K- t4.7 Java动态代理 972 z+ o- w) B3 V0 @- S# k
4.7.1 静态代理 97
3 b5 h; k) R; h" v4.7.2 动态代理 98
! K5 H ?3 J i7 B: S4 s3 \5 a4.7.3 CGLib代理 100
5 x3 W" k% v; z1 D7 f. g4.8 Javassist动态编程 101: I3 Z: `5 Y0 i& w
4.9 可用于Java Web的安全开发框架 103
* b4 }- B- K' _: U4.9.1 Spring Security 103+ t/ `; N5 ~+ h: n
4.9.2 Apache Shiro 104
8 s* |: Y) u2 C4.9.3 OAuth 2.0 105
. J4 M, p ~# B4.9.4 JWT 107( Z" x6 f6 T G. C( t/ r' O
第5章 “OWASP Top 10 2017”漏洞的代码审计 1097 _% T" h" ^2 m. B
5.1 注入 110# V; F& k9 O3 a5 I/ j
5.1.1 注入漏洞简介 110" L( W, R6 w0 e
5.1.2 SQL注入 110
8 _. d: {; ^ j( i# E% T( o% b5.1.3 命令注入 117
, C5 D! N* a% e" y. }; u5.1.4 代码注入 121
$ k( y' w" E) _, v: O5.1.5 表达式注入 125
$ g9 ^; q' s' `$ ~5 g$ w* ?5.1.6 模板注入 130& S1 ]) F& R) P* O0 ?7 F
5.1.7 小结 133' x. @% |' G# G
5.2 失效的身份认证 134
1 W ~, D8 x' c5.2.1 失效的身份认证漏洞简介 134
6 F: N; S! r/ L0 D2 P$ @1 X5.2.2 WebGoat8 JWT Token猜解实验 134
' T% F. p0 V0 ]/ S5.2.3 小结 1417 Y2 L# `' x* \/ X: W i
5.3 敏感信息泄露 142+ Z" ]+ d B4 r. D( U' y
5.3.1 敏感信息泄露简介 142
" a. A0 j9 o/ D/ F5.3.2 TurboMail 5.2.0敏感信息泄露 142$ s0 u: v1 P4 X) b
5.3.3 开发组件敏感信息泄露 146' X$ L3 K( u; |) j0 |4 H: `2 S
5.3.4 小结 146# N3 Q9 @4 u2 X% U! q3 \! c/ X
5.4 XML外部实体注入(XXE) 147
' S4 Y' `0 \0 S7 P8 r& q; b3 _: K5.4.1 XXE漏洞简介 147
5 z0 e+ r9 I3 t! h- n) [0 k5.4.2 读取系统文件 148+ |3 t1 ]( x: e( Y3 e( B* K; Y1 A
5.4.3 DoS攻击 1502 x/ [1 H1 G- N' S$ l
5.4.4 Blind XXE 1517 \: V$ H$ ?7 p
5.4.5 修复案例 1542 D' J8 ?5 L0 X9 t
5.4.6 小结 156! K* a$ Y+ Y9 x
5.5 失效的访问控制 157
+ e+ Y- n) H: t6 U' Z5 R! _" n5.5.1 失效的访问控制漏洞简介 1572 ~/ _5 m6 D w3 v3 D( t! u0 f( b# n
5.5.2 横向越权 1579 g- p8 U' j: v7 B
5.5.3 纵向越权 164
2 Q4 q1 h8 u+ M5.5.4 小结 168) F9 U B8 |) s* V- w# u
5.6 安全配置错误 168
( y$ f% z" O1 N) v6 Z' J5.6.1 安全配置错误漏洞简介 168. Z% j: ]' n! B" c! o/ A1 V
5.6.2 Tomcat任意文件写入(CVE-2017-12615) 169
! H4 C- q- b4 K9 i0 `, l0 ]5.6.3 Tomcat AJP 文件包含漏洞(CVE-2020-1938) 173
& W3 P# w2 Z0 F* [6 h8 @5.6.4 Spring Boot远程命令执行 192
; c3 @) Q$ t& B# _" r/ Z5.6.5 小结 2036 t! v9 V; e! g1 O3 Y( A L
5.7 跨站脚本(XSS) 203
. p# c7 ?! Q- c; q5.7.1 跨站脚本漏洞简介 203
8 q, y" v3 S! E6 z; i f5.7.2 反射型XSS漏洞 204$ S3 v! j1 m2 _2 k
5.7.3 存储型XSS漏洞 2068 D) C! H5 U) Q$ o. q" _& d+ O
5.7.4 DOM型XSS漏洞 211' o" W3 s- W$ a: R
5.7.5 修复建议 212
. C% c b, U9 j" r' C5.7.6 小结 212% |: h5 m1 R: Z, A- t8 }5 J( X3 c
5.8 不安全的反序列化 212
8 s( ]1 x6 J. }4 m* d" l5.8.1 不安全的反序列化漏洞简介 212& u' k" a2 Z1 X L3 a7 J# @
5.8.2 反序列化基础 213java吧 www.java8.com
. F D8 e/ c5 v6 K& F9 Z- {, Q, L5.8.3 漏洞产生的必要条件 214
1 o: p$ x8 j+ V5.8.4 反序列化拓展 215
' p p# B$ N- f, [0 g7 U: M0 g3 O5.8.5 Apache Commons Collections反序列化漏洞 2182 W7 i. X9 ~ h5 _! ?
5.8.6 FastJson反序列化漏洞 225& b7 ?6 N. s. G
5.8.7 小结 235! b a. D. _" A
5.9 使用含有已知漏洞的组件 235! b7 s: C( E+ k3 g
5.9.1 组件漏洞简介 235- s3 w% ~. B3 a; D1 L9 V
5.9.2 Weblogic中组件的漏洞 237, ], i& p( f4 o7 ?. a7 C# l
5.9.3 富文本编辑器漏洞 238
1 |! m/ W, W$ E5.9.4 小结 241
5 D. k$ `- h& k5.10 不足的日志记录和监控 241( U% f- O, _1 w: L) p" p
5.10.1 不足的日志记录和监控漏洞简介 241. |/ u- Q' W7 s$ R7 l0 ~. l+ L
5.10.2 CRLF注入漏洞 242 V8 V6 e, E! q- r# b
5.10.3 未记录可审计性事件 243
5 N- a! q, ` K* B- t5 [5.10.4 对日志记录和监控的安全建议 244# p8 k+ Z) y ]# Z' B
5.10.5 小结 244
, v( }% q# v! F( X z第6章 “OWASP Top 10 2017”之外常见漏洞的代码审计 245: \" O( i: e. H
6.1 CSRF 245; ?" d% o9 K. j
6.1.1 CSRF简介 245
0 `2 N/ H% l) p- y6.1.2 实际案例及修复方式 246. ~! E* g# T$ @" M6 R$ L
6.1.3 小结 249
0 V! i3 [/ {# w6.2 SSRF 2492 G5 J( Q3 o( o/ q- r% {
6.2.1 SSRF简介 249- i3 K6 D+ W* I& Y
6.2.2 实际案例及修复方式 2508 |( a0 Q4 {1 @8 q& v% a
6.2.3 小结 262$ e: B7 e5 { N, ^( M T: s1 H
6.3 URL跳转 263
/ R+ z8 s' Y( N6 J' `6.3.1 URL跳转漏洞简介 2637 g% }: q- ^$ \ q7 W2 [4 q" g! l
6.3.2 实际案例及修复方式 264( B! e/ ~* G! C: B9 n: S! r2 ~0 s+ x
6.3.3 小结 267
% X5 X" Q. C/ T1 f2 G6.4 文件操作漏洞 2670 h# [3 ] `' g: U; A, p R- c
6.4.1 文件操作漏洞简介 267. {5 u O/ `& o! {+ _
6.4.2 漏洞发现与修复案例 268) t+ L/ `* r4 {! ^
6.4.3 小结 286
" V( c% O2 X$ h6 K% [% x; T# n: b8 Y3 i6.5 Web后门漏洞 287
5 l5 p* r4 g( N/ o+ l6.5.1 Web后门漏洞简介 287
* @, u1 C( ?" D% ]: W" `6.5.2 Java Web 后门案例讲解 287
4 ]8 }" i* o5 I0 _6.5.3 小结 292
& h6 ?, u3 W9 Y6.6 逻辑漏洞 293
' a9 X2 v5 t' b- w6.6.1 逻辑漏洞简介 293. g. N1 _2 K- |" ]8 Z$ p: U: Z
6.6.2 漏洞发现与修复案例 293
/ Y3 K" J$ |4 j( Y$ K. ~2 Z k6.6.3 小结 299
& [) P/ ]9 B- e; A/ r6.7 前端配置不当漏洞 3006 \% |. [+ p1 r
6.7.1 前端配置不当漏洞简介 300+ E; s3 O: k$ q" b6 w! F5 f2 X% c$ C6 Y" `
6.7.2 漏洞发现与修复案例 300
w3 v9 N5 j! ?7 D6.7.3 小结 305
1 O4 P* Q H2 a5 b6 M+ s6.8 拒绝服务攻击漏洞 305' a, {3 j% f7 h& z
6.8.1 拒绝服务攻击漏洞简介 305$ S+ H. P4 |6 a6 f0 b& `
6.8.2 漏洞发现与修复案例 306, k4 V9 [2 ^* b+ L; t9 y
6.8.3 小结 322/ |: _0 T2 e# _. E0 U) s, F0 t1 I$ [
6.9 点击劫持漏洞 3236 _1 C% a3 |4 o) ?: _1 V2 t) _; o
6.9.1 点击劫持漏洞简介 3239 i: e' B' G- o7 W$ ^$ H
6.9.2 漏洞发现与修复案例 324* u+ R( Y" y* [$ z( F
6.9.3 小结 327
9 w+ B0 L" h8 \* \* e2 B @& P6.10 HTTP参数污染漏洞 327, u7 a! O1 b/ r$ M1 C% d" Y* ?$ r
6.10.1 HTTP参数污染漏洞简介 3275 e7 U& c5 z h; I+ n' A: W7 N( r
6.10.2 漏洞发现与修复案例 328
S. Y+ A0 @3 @) u: ~% H( i6.10.3 小结 330) j2 @) ?# X1 z
第7章 Java EE开发框架安全审计 3313 C* m4 j# E+ v3 d |
7.1 开发框架审计技巧简介 331! g" u# Z* X( x! i
7.1.1 SSM框架审计技巧 331: ]% k! F0 s! y# ?
7.1.2 SSH框架审计技巧 360
3 Q" W6 b% ]: g0 G2 T1 |) M7.1.3 Spring Boot框架审计技巧 373, U; i' F- E9 ]8 j) l
7.2 开发框架使用不当范例(Struts2 远程代码执行) 377
7 d% E1 h( _9 H% n. P( m7.2.1 OGNL简介 377
! J. u4 Z. n: R8 P; P& m* P4 `7.2.2 S2-001漏洞原理分析 379 W; u$ z/ U4 D3 m6 c
第8章 Jspxcms代码审计实战 390" P/ d& f' m* t
8.1 Jspxcms简介 390
2 H4 L# ]1 O2 E H8.2 Jspxcms的安装 391
7 y( R$ ]/ B8 X6 {5 W8.2.1 Jspxcms的安装环境需求 3910 s# A; N, l% m. {( C2 F5 j3 b( h
8.2.2 Jspxcms的安装步骤 391
/ z$ G% l! i* r+ L- s* [ ]8.3 目录结构及功能说明 399" i, X" F7 ^! W& M
8.3.1 目录结构 399
8 d4 u" l V0 W- l3 C. E" l8.3.2 功能说明 402% u) o" y) ~9 Z
8.4 第三方组件漏洞审计 406; b- G- X8 J% ?1 d( ~6 Y% r" _
8.5 单点漏洞审计 408! _+ P( l$ W2 p
8.5.1 SQL审计 408+ k, L9 m8 {1 p9 A' }6 I( G* s9 G
8.5.2 XSS 审计 411
) c0 y8 R3 Z: E8.5.3 SSRF审计 418/ v# v; B0 o( b/ E h, M p
8.5.4 RCE审计 431" n7 b1 Q3 m, Z2 u
8.6 本章总结 440
9 y1 j+ `! D0 T3 j第9章 小话IAST与RASP 441
) m6 z; p" [7 Y: _9.1 IAST简介 441
2 j2 g, O1 c ]7 v, K. j% J; [9.2 RASP简介 443; d' Y5 M# P" _$ Q( v
9.3 单机版OpenRASP Agent实验探究 4440 f* Y2 e; h; u6 j/ l
9.3.1 实验环境 444) V2 o/ T9 r- M/ u/ @& w, a
9.3.2 实验过程 444# i! \! I. M( F4 b! z/ U
9.4 OpenRASP Java Agent原理浅析 448, u# y b* v& [" X- G I
9.5 本章总结 452
x7 ]2 E8 _- b0 \附录 Java安全编码规范索引 453
5 t9 ?' L8 e( [. Y' ]6 r4 |百度云盘下载地址:
e1 I, D( g& C版权归出版社和原作者所有,链接已删除,请购买正版 购买地址:http://product.dangdang.com/29273747.html
3 \. S6 D6 M' A6 N; |& y |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|