第1章 Web安全基础 1
1.1网络安全现状 1
1.2常见的Web安全漏洞 1
1.3 HTTP基础 2
1.3.1 HTTP之URL 3
1.3.2 HTTP请求 3
1.3.3 HTTP响应 4
1.3.4 HTTP状态码 4
1.3.5 HTTP请求方法 5
1.3.6 HTTP请求头 6
1.3.7 HTTP响应头 7
1.4 Cookie和Session 7
1.4.1 Cookie简介 7
1.4.2 Cookie详解 8
1.4.3 Session详解 9
1.4.4 Session传输 11
1.5 Burp Suite工具 12
1.5.1 Burp Suite简介 12
1.5.2 Burp Suite主要组件 12
1.5.3 Burp Suite安装 13
1.5.4 Burp Suite代理设置 13
1.5.5 Burp Suite重放 18
1.5.6 Burp Suite爆破 19
1.5.7安装CA证书 25
1.6信息收集 30
1.6.1 Nmap扫描 30
1.6.2敏感目录扫描 35
1.7思考题 36
第2章 SQL注入漏洞 38
2.1 SQL注入漏洞简介 38
2.1.1 SQL注入漏洞产生原因及危害 38
2.1.2 SQL注入漏洞示例代码分析 38
2.1.3 SQL注入分类 38
2.2数字型注入 39
2.3字符型注入 39
2.4 MySQL注入 40
2.4.1 information_schema数据库 40
2.4.2 MySQL系统库 41
2.4.3 MySQL联合查询注入 41
2.4.4 MySQL bool注入 50
2.4.5 MySQL sleep注入 59
2.4.6 MySQL floor注入 67
2.4.7 MySQL updatexml注入 72
2.4.8 MySQL extractvalue注入 76
2.4.9 MySQL宽字节注入 76
2.5 Oracle注入 81
2.5.1 Oracle基础知识 81
2.5.2 Oracle注入示例代码分析 84
2.6 SQL Server注入 90
2.6.1 SQL Server目录视图 90
2.6.2 SQL Server报错注入 92
2.7 Access注入 96
2.7.1 Access基础知识 96
2.7.2 Access爆破法注入 96
2.8二次注入 101
2.8.1二次注入示例代码分析 101
2.8.2二次注入漏洞利用过程 102
2.9自动化SQL注入工具sqlmap 104
2.9.1 sqlmap基础 104
2.9.2 sqlmap注入过程 105
2.10 SQL注入绕过 108
2.10.1空格过滤绕过 108
2.10.2内联注释绕过 113
2.10.3大小写绕过 115
2.10.4双写关键字绕过 116
2.10.5编码绕过 117
2.10.6等价函数字符替换绕过 121
2.11 MySQL注入漏洞修复 124
2.11.1代码层修复 124
2.11.2服务器配置修复 126
2.12思考题 127
第3章 文件上传漏洞 128
3.1文件上传漏洞简介 128
3.2前端JS过滤绕过 128
3.3文件名过滤绕过 132
3.4 Content-Type过滤绕过 133
3.5文件头过滤绕过 136
3.6.htaccess文件上传 138
3.6.1 .htaccess基础 138
3.6.2 .htaccess文件上传示例代码分析 139
3.7文件截断上传 141
3.8竞争条件文件上传 144
3.9文件上传漏洞修复 148
3.10思考题 148
第4章 文件包含漏洞 149
4.1文件包含漏洞简介 149
4.2文件包含漏洞常见函数 149
4.3文件包含漏洞示例代码分析 149
4.4无限制本地文件包含漏洞 150
4.4.1定义及代码实现 150
4.4.2常见的敏感信息路径 150
4.4.3漏洞利用 150
4.5有限制本地文件包含漏洞 151
4.5.1定义及代码实现 151
4.5.2 %00截断文件包含 152
4.5.3路径长度截断文件包含 152
4.5.4点号截断文件包含 154
4.6 Session文件包含 155
4.6.1利用条件 155
4.6.2 Session文件包含示例分析 155
4.6.3漏洞分析 156
4.6.4漏洞利用 156
4.7日志文件包含 157
4.7.1中间件日志文件包含 157
4.7.2 SSH日志文件包含 159
4.8远程文件包含 161
4.8.1无限制远程文件包含 161
4.8.2有限制远程文件包含 162
4.9 PHP伪协议 164
4.9.1 php://伪协议 165
4.9.2 file://伪协议 168
4.9.3 data://伪协议 169
4.9.4 phar://伪协议 169
4.9.5 zip://伪协议 171
4.9.6 expect://伪协议 172
4.10文件包含漏洞修复 172
4.10.1代码层修复 172
4.10.2服务器安全配置 172
4.11思考题 172
第5章 命令执行漏洞 174
5.1命令执行漏洞简介 174
5.2 Windows下的命令执行漏洞 176
5.2.1 Windows下的命令连接符 176
5.2.2 Windows下的命令执行漏洞利用 178
5.3 Linux下的命令执行漏洞 179
5.3.1 Linux下的命令连接符 179
5.3.2 Linux下的命令执行漏洞利用 180
5.4命令执行绕过 181
5.4.1绕过空格过滤 181
5.4.2绕过关键字过滤 184
5.5命令执行漏洞修复 191
5.5.1服务器配置修复 191
5.5.2函数过滤 191
5.6思考题 192
第6章 代码执行漏洞 194
6.1代码执行漏洞简介 194
6.2 PHP可变函数 199
6.3思考题 202
第7章 XSS漏洞 203
7.1 XSS漏洞简介 203
7.2 XSS漏洞分类 203
7.3反射型XSS 203
7.4存储型XSS 205
7.5 DOM型XSS 207
7.5.1 DOM简介 207
7.5.2 DOM型XSS示例代码分析 207
7.6 XSS漏洞利用 208
7.7 XSS漏洞修复 211
7.8思考题 212
第8章 SSRF漏洞 213
8.1 SSRF漏洞简介 213
8.2 SSRF漏洞示例代码分析 213
8.2.1端口探测 214
8.2.2读取文件 214
8.2.3内网应用攻击 215
8.3 SSRF漏洞修复 218
8.4思考题 219
第9章 XXE漏洞 220
9.1 XXE漏洞简介 220
9.2 XML基础 220
9.2.1 XML声明 220
9.2.2文档类型定义 221
9.3 XML漏洞利用 222
9.3.1文件读取 222
9.3.2内网探测 223
9.3.3内网应用攻击 225
9.3.4命令执行 226
9.4 XML漏洞修复 226
9.5思考题 226
第10章 反序列化漏洞 227
10.1序列化和反序列化简介 227
10.2序列化 227
10.2.1 serialize函数 227
10.2.2 NULL和标量类型数据的序列化 227
10.2.3简单复合类型数据的序列化 229
10.3反序列化 231
10.4反序列化漏洞利用 232
10.4.1魔法函数 232
10.4.2__construct函数和__destruct函数 232
10.4.3_-sleep函数和__wakeup函数 233
10.5反序列化漏洞示例代码分析 235
10.5.1漏洞分析 235
10.5.2漏洞利用 235
10.6反序列化漏洞利用实例详解 237
10.6.1漏洞分析 239
10.6.2漏洞利用 239
10.7思考题 245
第11章 中间件漏洞 246
11.1 IIS服务器简介 246
11.2 IIS 6.0 PUT上传漏洞 247
11.2.1漏洞产生原因 247
11.2.2 WebDAV简介 247
11.2.3漏洞测试方法 247
11.2.4漏洞利用方法 248
11.3 IIS短文件名枚举漏洞 249
11.3.1 IIS短文件名枚举漏洞简介 249
11.3.2 IIS短文件名枚举漏洞分析与利用 249
11.3.3 IIS短文件名漏洞利用示例 250
11.3.4 IIS短文件名枚举漏洞修复 252
11.4 IIS HTTP.sys漏洞 253
11.4.1漏洞简介 253
11.4.2影响版本 253
11.4.3漏洞分析与利用 254
11.4.4漏洞修复 257
11.5 JBoss服务器漏洞 257
11.5.1 JBoss的重要目录文件 258
11.5.2 JBoss未授权访问部署木马 258
11.5.3 JBoss Invoker接口未授权访问远程命令执行 262
11.6 Tomcat服务器漏洞 265
11.6.1 Tomcat弱口令攻击 266
11.6.2 Tomcat弱口令漏洞修复 270
11.6.3 Tomcat远程代码执行漏洞 270
11.6.4 Tomcat远程代码执行漏洞修复 274
11.7 WebLogic服务器漏洞 275
11.7.1 WebLogic部署应用的3种方式 275
11.7.2 WebLogic弱口令漏洞利用 284
11.8思考题 288
第12章 解析漏洞 289
12.1 Web容器解析漏洞简介 289
12.2 Apache解析漏洞 290
12.2.1漏洞形成原因 290
12.2.2 Apache解析漏洞示例分析 290
12.2.3 Apache解析漏洞修复 292
12.3 PHP CGI解析漏洞 292
12.3.1 CGI简介 292
12.3.2 fastcgi简介 292
12.3.3 PHP CGI解析漏洞 292
12.4 IIS解析漏洞 293
12.4.1 IIS 6.0解析漏洞 293
12.4.2 IIS 6.0解析漏洞修复 294
12.5 IIS 7.x解析漏洞 295
12.5.1 IIS 7.x解析漏洞示例分析 296
12.5.2 IIS 7.x解析漏洞修复 297
12.6 Nginx解析漏洞 298
12.7思考题 299
第13章 数据库漏洞 300
13.1 SQL Server数据库漏洞 300
13.1.1利用xp_cmdshell提权 300
13.1.2利用MSF提权 302
13.2 MySQL数据库漏洞 304
13.3 Oracle数据库漏洞 309
13.4 Redis数据库未授权访问漏洞 313
13.4.1 Redis数据库未授权访问环境搭建 313
13.4.2利用Redis未授权访问漏洞获取敏感信息 315
13.4.3利用Redis未授权访问漏洞获取主机权限 316
13.4.4利用Redis未授权访问漏洞写入Webshell 319
13.4.5利用Redis未授权访问漏洞反弹shell 320
13.5数据库漏洞修复 321
13.6思考题 321
附录A 英文缩略语 323