目 录
第1篇 渗透测试入门
第1章 准备实验环境 2
1.1 渗透测试概述 2
1.1.1 渗透测试基本流程 2
1.1.2 关于漏洞 4
1.2 搭建实验环境 5
1.2.1 安装配置VMware 5
1.2.2 Linux系统简介 10
1.2.3 安装配置Kali 12
1.2.4 安装配置CentOS 16
1.2.5 设置Xshell远程登录 23
1.3 搭建LAMP网站平台 25
1.3.1 什么是LAMP 26
1.3.2 安装LAMP 26
1.3.3 安装DVWA 29
1.4 本章小结 31
第2章 靶机1—ME AND
MY GIRLFRIEND 32
2.1 nmap扫描 34
2.1.1 主机发现 34
2.1.2 端口与socket 35
2.1.3 端口属于传输层概念 37
2.1.4 端口的分类 39
2.1.5 端口扫描 41
2.2 HTTP协议 42
2.2.1 HTTP请求和响应 42
2.2.2 Burp Suite的基本配置和使用 45
2.2.3 HTTP报文结构 53
2.2.4 Web基本概念 55
2.2.5 GET方法和POST方法 59
2.2.6 修改HTTP请求头 65
2.2.7 伪造客户端IP地址 70
2.3 网站前端代码 74
2.3.1 前端和后端 75
2.3.2 查看网页源码 76
2.3.3 HTML基础 77
2.3.4 JavaScript基础 82
2.3.5 修改前端代码 86
2.4 SSH服务 88
2.4.1 SSH概述 88
2.4.2 允许登录系统的用户 89
2.4.3 ssh和scp命令的使用 90
2.4.4 通过SSH登录靶机 92
2.5 sudo提权 93
2.5.1 什么是Shell 94
2.5.2 什么是sudo 95
2.5.3 sudo提权 97
2.6 本章小结 98
第3章 靶机2—DC:1 100
3.1 漏洞利用工具 100
3.1.1 CMS识别 101
3.1.2 exploit查找和使用 103
3.1.3 Metasploit基本操作 106
3.1.4 利用pty模块获得系统Shell 110
3.2 suid提权 112
3.2.1 什么是suid 112
3.2.2 查找被设置了suid的文件 113
3.2.3 利用find命令提权 115
3.3 数据库配置文件 117
3.3.1 数据库配置文件的概念 117
3.3.2 数据库操作 119
3.3.3 利用数据库账号撞库 120
3.4 本章小结 121
第4章 靶机3—Lampiao 122
4.1 靶机前期操作 122
4.1.1 全端口扫描 122
4.1.2 Drupal的识别与渗透 123
4.2 脏牛提权 125
4.2.1 查看Linux版本 125
4.2.2 脏牛提权 127
4.3 本章小结 130
第2篇 渗透测试提高
第5章 靶机4—MR-ROBOT:1 132
5.1 网站目录扫描 132
5.1.1 网站敏感信息 133
5.1.2 响应状态码 136
5.1.3 网站扫描工具 139
5.1.4 扫描靶机 141
5.2 暴破Web登录页面 141
5.2.1 字典去重 141
5.2.2 Burp Suite Intruder模块的使用 143
5.2.3 CTF练习 148
5.2.4 暴破靶机 153
5.3 获取WebShell 154
5.3.1 什么是WebShell 155
5.3.2 Kali中的WebShell 156
5.3.3 安装WordPress 159
5.3.4 定制404页面获取WebShell 162
5.4 MD5和Hash算法 166
5.4.1 Hash算法 167
5.4.2 CTF练习 169
5.5 nmap和脏牛提权 171
5.5.1 利用被设置了suid的nmap提权 172
5.5.2 利用脏牛提权 173
5.6 本章小结 174
第6章 靶机5—QUAOAR 175
6.1 WordPress漏洞利用 175
6.1.1 信息收集 175
6.1.2 利用wpscan进行暴破 177
6.1.3 利用404页面获取WebShell 179
6.1.4 上传插件获取WebShell 180
6.2 一句话木马的原理和使用 183
6.2.1 一句话木马和蚁剑 183
6.2.2 上传一句话木马 186
6.2.3 PHP基础 187
6.2.4 PHP预定义变量 190
6.2.5 PHP中的eval()函数 193
6.3 配置计划任务 194
6.3.1 利用撞库获得root密码 195
6.3.2 Linux计划任务 197
6.4 本章小结 200
第7章 靶机6—DC:6 201
7.1 靶机前期操作 201
7.1.1 hosts文件 201
7.1.2 利用wpscan暴破 203
7.1.3 利用exploit攻击WordPress 204
7.2 命令执行RCE漏洞 205
7.2.1 RCE漏洞原理分析 206
7.2.2 CTF练习 210
7.3 nc反弹Shell 211
7.3.1 利用nc反弹Shell 211
7.3.2 利用sudo和nmap提权 214
7.4 本章小结 217
第3篇 SQL注入
第8章 SQL注入基础 220
8.1 MySQL基本操作 220
8.1.1 SQL语言 220
8.1.2 查看信息 221
8.1.3 创建/删除数据库或数据表 223
8.1.4 修改数据表 224
8.1.5 select查询 226
8.2 SQL注入的基本原理 227
8.2.1 DVWA的low级别SQL注入 228
8.2.2 如何构造SQL注入payload 230
8.2.3 文本型注入CTF练习 231
8.2.4 注释符和URL编码 232
8.2.5 数字型注入 235
8.3 union联合查询注入 237
8.3.1 union联合查询 238
8.3.2 information_schema元数据库 240
8.3.3 基础union注入 243
8.3.4 标准union注入 245
8.4 sqlmap自动化注入 251
8.4.1 sqlmap基本注入流程 251
8.4.2 伪造User-Agent 255
8.4.3 加载Cookie 256
8.4.4 POST型注入 257
8.5 本章小结 259
第9章 靶机7—HACKME: 1 262
9.1 SQL注入实战 262
9.1.1 解决网站卡顿问题 262
9.1.2 通过SQL注入获取用户信息 264
9.2 获取Shell并提权 267
9.3 本章小结 269
第10章 靶机8—AI:WEB:1 270
10.1 利用SQL注入获取用户信息 270
10.2 Base64编码 272
10.2.1 Base64编码原理 272
10.2.2 Base64编码和解码 274
10.2.3 相关CTF例题 276
10.3 利用SQL注入获取Shell 278
10.3.1 获取网站物理路径 278
10.3.2 通过MySQL读写文件 280
10.3.3 通过手工注入获取Shell 282
10.3.4 通过sqlmap获取Shell 283
10.4 修改passwd文件进行提权 285
10.5 本章小结 287
第4篇 文件上传和文件包含
第11章 文件上传基础 290
11.1 文件上传代码分析 290
11.1.1 预定义变量$_FILES 290
11.1.2 保存上传的文件 292
11.1.3 DVWA中的文件上传 293
11.2 文件上传的防御与绕过 294
11.2.1 检测MIME类型 294
11.2.2 白名单检测扩展名 296
11.2.3 前端验证 297
11.2.4 黑名单检测扩展名 299
11.2.5 .htaccess绕过 301
11.3 文件上传CTF例题 302
11.3.1 攻防世界-Web-upload1 302
11.3.2 BUUCTF-Web-[ACTF2020 新生赛]
Upload 302
11.3.3 BUUCTF-Web-[MRCTF2020]
你传你马呢 303
11.4 本章小结 304
第12章 文件包含基础 305
12.1 文件包含漏洞分析 305
12.1.1 文件包含的作用 305
12.1.2 通过文件包含读取文件 307
12.2 文件包含配合文件上传 309
12.2.1 修改文件头 309
12.2.2 getimagesize绕过 313
12.2.3 exif_imagetype绕过 314
12.2.4 相关CTF例题 315
12.3 文件包含读取文件源码 317
12.3.1 php://伪协议 318
12.3.2 CTF典型例题分析 319
12.4 本章小结 322
第13章 靶机9—
INCLUSIVENESS: 1 323
13.1 FTP服务简介 323
13.1.1 FTP基本操作 323
13.1.2 发现FTP匿名上传 325
13.2 Web渗透测试 326
13.2.1 修改User-Agent 326
13.2.2 文件包含获取Shell 327
13.3 修改环境变量提权 328
13.3.1 发现提权线索 328
13.3.2 PATH环境变量 330
13.3.3 修改环境变量提权 331
13.4 本章小结 332
第14章 靶机10—PWNLAB:INIT 333
14.1 Web渗透测试 333
14.1.1 文件包含获取网页源码 333
14.1.2 上传图片马获取Shell 336
14.2 命令劫持提权 340
14.2.1 命令劫持 340
14.2.2 命令执行 341
14.3 本章小结 343
第15章 靶机11—BILLU:B0X 344
15.1 Web渗透测试 344
15.1.1 获取网页源码 344
15.1.2 SQL注入代码审计 348
15.1.3 获取数据库中的数据 349
15.1.4 文件上传代码审计 351
15.1.5 文件包含代码审计 353
15.2 脏牛提权 355
15.3 本章小结 356