具体描述
如果说网络遍地是金钱,那么金钱就在数据库服务器中。当我们说现代经济依赖于计算机时,我们真正的意思是说现代经济依赖于数据库系统。数据库躲在几乎影响着我们生活的每一方面的系统背后—— 我们的银行账户、医疗记录、养老金、工作履历、电话记录、纳税记录、汽车登记明细、超市购物及子女的学习成绩—— 几乎生活中的每条重要信息都保存在现代关系数据库管理系统中。本书涵盖了7个主流关系数据库系统,您的私人信息或许碰巧正保存在某个系统中,而该系统正是本书的一个主题。
作者简介
目录信息
第I部分 引言
第1章 关注数据库安全的原因 3
1.1 最安全的数据库 3
1.2 数据库安全研究现状 4
1.3 讨论数据库安全研究现状的意义 10
1.4 寻找数据库服务器的漏洞 10
1.4.1 不要相信文献 11
1.4.2 实现自己的客户程序 11
1.4.3 调试系统,理解它是如何运行的 11
1.4.4 标识通信协议 11
1.4.5 理解任意代码执行bug 12
1.4.6 写下自己的“fuzzer” 12
1.5 小结 12
第Ⅱ部分 Oracle
第2章 Oracle体系结构 15
2.1 分析Oracle体系结构 15
2.2 Oracle RDBMS 21
2.3 Oracle Intelligent Agent 22
2.4 Oracle的身份验证和授权 27
2.5 数据库身份验证 28
2.5.1 授权 30
2.5.2 关键系统特权 30
2.5.3 Oracle审计 31
第3章 攻击Oracle 33
3.1 扫描Oracle服务器 33
3.1.1 常用端口 33
3.1.2 TNS Listener 34
3.2 Oracle中的PL/SQL 42
3.3 PL/SQL Injection 46
3.4 注入DELETE、INSERT及UPDATE语句 52
3.4.1 注入INSETRT语句 52
3.4.2 实际示例 53
3.5 注入匿名的PL/SQL代码块 54
3.6 用DBMS_SQL执行用户自定义查询 56
3.7 实际示例 59
3.8 PL/SQL和Oracle Application Server(Oracle应用程序服务器) 62
3.9 小结 65
第4章 Oracle:深入网络 67
4.1 运行操作系统命令 67
4.1.1 通过PL/SQL运行OS命令 67
4.1.2 通过DBMS_SCHEDULER运行OS命令 69
4.1.3 通过Java运行OS命令 70
4.2 访问文件系统 70
4.3 访问网络 72
4.4 PL/SQL和网络 73
4.4.1 UTL_TCP 73
4.4.2 UTL_HTTP 75
4.4.3 UTL_SMTP 75
4.5 小结 76
第5章 保护Oracle 77
5.1 Oracle安全建议 77
5.2 Oracle数据库服务器 79
5.2.1 账户 79
5.2.2 角色 80
5.2.3 DBA角色 81
第Ⅲ部分 DB2
第6章 IBM DB2通用数据库 87
6.1 引言 87
6.2 DB2部署场景 87
6.3 DB2进程 93
6.4 DB2物理数据库布局 95
6.4.1 Windows上的DB2 95
6.4.2 Linux上的DB2 95
6.5 DB2逻辑数据库布局 95
6.6 DB2身份验证和授权 96
6.7 授权 105
6.7.1 DBAUTH视图 105
6.7.2 TABAUTH视图 106
6.7.3 ROUTINEAUTH视图 107
6.8 小结 108
第7章 DB2:发现、攻击和防御 109
第8章 攻击DB2 119
8.1 DB2过程和函数的缓冲区溢出 119
8.2 DB2远程命令服务器 122
8.3 通过DB2运行命令 124
8.4 通过DB2访问文件系统 125
8.4.1 加载方式 125
8.4.2 XML函数 125
8.5 本地攻击DB2 126
8.6 小结 134
第9章 保护DB2 135
9.1 保护操作系统 135
9.2 保护DB2网络接口 135
9.3 保护DBMS 136
9.4 删除不必要组件 136
9.5 小结 136
第Ⅳ部分 Informix
第10章 Informix体系结构 139
10.1 分析Informix体系结构 139
10.1.1 网络上的Informix 139
10.1.2 连接远程Informix服务器 139
10.2 Informix逻辑布局 140
第11章 Informix:发现、攻击和防御 145
11.1 攻击和防御Informix 145
11.1.1 身份验证提交攻击 155
11.1.2 共享内存、用户名和口令 157
11.2 用SPL攻击Informix 160
11.2.1 通过SPL运行任意命令 160
11.2.2 加载任意库 164
11.2.3 读、写服务器上的任意文件 164
11.3 Informix内的SQL缓冲区溢出 164
11.4 小结 167
第12章 保护Informix 169
12.1 为服务器持续打补丁 169
12.2 加密网络通信量 169
12.3 取消Public的Connect特权 169
12.4 启用审计 169
12.5 取消Public对文件访问例程的权限 169
12.6 取消Public对模块例程的执行权限 170
12.7 阻止转储共享内存 170
12.8 阻止对基于Unix的服务器的本地攻击 170
12.9 限制语言Usage权限 170
12.10 有用文档 170
第Ⅴ部分 Sybase ASE
第13章 Sybase体系结构 175
13.1 Sybase背景 175
13.2 历史 175
13.3 显著特性 176
13.3.1 Java-In-ASE 176
13.3.2 部署场景 178
13.3.3 防火墙对Sybase的含意 180
13.3.4 与Sybase通信 181
13.3.5 特权模型 181
13.3.6 登录账户基础 181
13.3.7 口令和口令复杂性 182
13.3.8 服务交互 183
第14章 Sybase:发现、攻击和防御 185
14.1 发现目标 185
14.1.1 扫描Sybase 185
14.1.2 Sybase版本号 185
14.1.3 窥探身份验证 186
14.2 攻击Sybase 186
14.2.1 Sybase中的SQL注入 187
14.2.2 SQL注入基础 187
14.3 Sybase内的MS SQL Server注入技术 190
14.3.1 注释 190
14.3.2 Union Select 191
14.3.3 错误消息 191
14.3.4 @@version 191
14.3.5 Having/Group By 192
14.3.6 SQL批处理注入 192
14.3.7 xp_cmdshell 193
14.3.8 xp_regread 193
14.3.9 自定义的扩展存储过程 193
14.3.10 调用CHAR函数以绕过引号筛选器 193
14.3.11 SHUTDOWN 194
14.3.12 通过sp_password逃避审计 194
14.3.13 连接服务器 194
14.3.14 利用时间延迟作通信通道 195
14.3.15 VARBINARY字面值编码和Exec 197
14.4 外部文件系统访问 197
14.5 防御攻击 199
14.6 过去已知的一些Sybase ASE安全bug 199
14.6.1 CAN-2003-0327——远程口令数组溢出 199
14.6.2 DBCC CHECKVERIFY缓冲区溢出 199
14.6.3 DROP DATABASE缓冲区溢出漏洞 200
14.6.4 xp_freedll缓冲区溢出 200
14.7 Sybase版本工具 200
第15章 Sybase:深入网络 207
15.1 访问网络 207
15.2 用Sybase连接其他服务器 207
15.3 SQL中的Java 208
15.3.1 JSQL TDS客户端 210
15.3.2 JSQL TCP代理 212
15.4 特洛伊(Trojanning)Sybase 213
15.4.1 授予用户sa或sso_role权限 213
15.4.2 允许直接更新系统表,授权访问选择的系统表 214
第16章 保护Sybase 215
16.1 Sybase安全一览表 215
16.1.1 背景 215
16.1.2 操作系统 215
16.1.3 Sybase用户 215
16.1.4 Sybase配置 216
16.2 背景 216
16.3 操作系统 216
16.4 Sybase用户 217
16.5 Sybase配置 218
第Ⅵ部分 MySQL
第17章 MySQL体系结构 223
17.1 分析物理数据库结构 223
17.1.1 部署 224
17.1.2 WinMySQLAdmin自动启动 225
17.1.3 默认用户名和口令 225
17.1.4 协议 226
17.1.5 身份验证协议中的bug 226
17.2 分析逻辑数据库结构 229
17.2.1 MySQL逻辑数据库结构 229
17.2.2 存储引擎 230
17.2.3 文件系统布局 231
17.2.4 查询批处理 231
17.2.5 分析用户和组 231
17.3 利用体系结构设计缺陷 237
17.3.1 用户定义函数 237
17.3.2 访问控制系统缺陷 239
17.3.3 缺少安全影响特性 240
17.3.4 缺少提高安全的特性 241
第18章 MySQL:发现、攻击和防御 243
18.1 发现目标 243
18.1.1 扫描MySQL 243
18.1.2 MySQL版本号 243
18.1.3 窥探身份验证 244
18.2 黑掉MySQL 245
18.2.1 MySQL中的SQL注入 245
18.2.2 已知的一些MySQL bug 251
18.2.3 特洛伊(Trojanning)MySQL 258
18.3 本地攻击MySQL 263
18.3.1 竞争条件 264
18.3.2 溢出 264
18.4 再论MySQL文件结构 264
第19章 MySQL:深入网络 265
19.1 MySQL客户机散列身份验证补丁 265
19.2 运行外部程序:用户定义函数 266
19.3 Windows中的用户定义函数 268
19.4 小结 272
第20章 保护MySQL 273
20.1 MySQL安全一览表 273
20.1.1 背景 273
20.1.2 操作系统 273
20.1.3 MySQL用户 274
20.1.4 MySQL配置 274
20.1.5 例行审计 274
20.2 背景 275
20.3 操作系统 275
20.4 MySQL用户 276
20.5 MySQL配置 278
20.6 例行审计 279
第Ⅶ部分 SQL Server
第21章 Microsoft SQL Sever体系结构 283
21.1 SQL Server背景 283
21.2 物理体系结构 284
21.2.1 表格数据流(TDS)协议 284
21.2.2 网络库 285
21.2.3 SQL Server进程和端口 285
21.2.4 身份验证和授权 287
21.3 逻辑体系结构 290
21.3.1 存储过程 291
21.3.2 触发器 295
21.4 用户和组 296
21.4.1 账户信息 296
21.4.2 口令加密 298
第22章 SQL Server:漏洞、攻击和防御 303
22.1 漏洞 303
22.2 利用设计错误 303
22.2.1 SQL Slammer 溢出 303
22.2.2 x08前导字节溢出 304
22.2.3 x0A前导字节网络DoS 304
22.2.4 客户机溢出 305
22.3 SQL 注入 305
22.3.1 系统级别的攻击 309
22.3.2 其他攻击向量 309
22.3.3 时间延迟 310
22.3.4 存储过程 311
22.3.5 端口扫描 313
22.3.6 批处理查询 313
22.3.7 SQL注入的防御 313
22.4 掩盖入侵痕迹 315
22.4.1 三字节补丁 315
22.4.2 XSTATUS后门 317
第23章 保护SQL Server 319
23.1 安装 319
23.1.1 步骤1:身份验证 319
23.1.2 步骤2:口令强度 321
23.1.3 步骤3:操作系统锁定 321
23.1.4 步骤4:安装后的锁定 322
23.2 配置 323
23.2.1 步骤5:配置网络库 323
23.2.2 步骤6:配置审计和警报 323
23.2.3 步骤7:锁定特权 323
23.2.4 步骤8:删除不需要的功能和服务 324
23.2.5 步骤9:删除存储过程 325
23.2.6 步骤10:安装安全补丁 326
第Ⅷ部分 PostgreSQL
第24章 PostgreSQL体系结构 329
24.1 分析物理数据库体系结构 329
24.1.1 安全部署 329
24.1.2 通用部署场景 330
24.1.3 术语 330
24.2 PostgreSQL文件结构 331
24.2.1 协议 332
24.2.2 身份验证 333
24.2.3 系统目录 335
24.2.4 分析用户和组 338
24.2.5 存储过程 339
第25章 PostgreSQL:发现与攻击 341
25.1 寻找目标 341
25.2 PostgreSQL协议 342
25.3 针对PostgreSQL的网络
攻击 343
25.3.1 网络嗅探 343
25.3.2 ARP欺骗和TCP劫持 343
25.3.3 ident欺骗 344
25.4 来自攻陷资源的信息泄露 345
25.5 已知的各种PostgreSQL bug 346
25.5.1 配置漏洞 347
25.5.2 代码执行漏洞 347
25.5.3 PostgreSQL组件中的漏洞 351
25.6 PostgreSQL中的SQL注入 353
25.6.1 有用的内置函数 356
25.6.2 使用PostgreSQL 8.0中的时间延迟 357
25.6.3 存储过程中的SQL注入 357
25.6.4 其他应用程序中的SQL注入漏洞 358
25.7 与文件系统进行交互 359
25.7.1 大对象支持 361
25.7.2 通过共享对象使用扩展 361
25.7.3 LOAD命令 363
25.8 小结 365
第26章 保护PostgreSQL 367
附录A 时间延迟SQL注入
Harness的C代码示例 369
附录B 危险的扩展存储过程 373
附录C Oracle默认用户名和口令 377
· · · · · · (收起)
读后感
用户评价
老实说,市面上的安全书籍很多都倾向于晦涩的学术化表达,读起来非常费劲,常常需要反复查阅专业词典才能理解一句话。但这本书的叙事节奏和结构设计简直是教科书级别的典范。它的章节安排逻辑性极强,从基础的网络架构介绍开始,逐步深入到应用层面的漏洞挖掘,每一步的过渡都自然流畅,仿佛精心编排的交响乐,层层递进,张力十足。最让我称赞的是,作者在讲解复杂算法和加密技术时,会适当地插入一些历史典故或者现实案例,这极大地缓解了阅读的枯燥感。比如讲到哈希函数的碰撞问题时,作者引用了一个有趣的密码学悖论,一下子就把原本冰冷的数学概念变得鲜活起来。这种将知识点“情境化”的处理方式,使得记忆和理解的效率大大提高。我感觉自己不是在硬背知识点,而是在跟随作者进行一场知识的探险,收获满满,意犹未尽。
这本书简直是技术小白的救星啊!我之前对计算机网络那些复杂的概念头大得很,各种协议、端口、IP地址什么的,听起来就像天书一样。但作者用一种非常生动有趣的方式把这些晦涩难懂的东西串联了起来。特别是讲解ARP欺骗那段,简直是神来之笔,作者没有直接丢给我一堆公式和代码,而是用了一个非常贴近生活的比喻,让我瞬间明白了数据包是怎么在局域网里“拐弯抹角”地被截获的。我甚至能想象出那些数据包在网络中穿梭的样子,仿佛在看一部微缩版的网络世界动作片。而且,书中对一些常见安全漏洞的剖析也极其到位,比如SQL注入,作者不仅仅是告诉你“别这么做”,而是深入讲解了底层原理,让你知道为什么那样做是危险的,以及如何构建健壮的防御体系。这本书的语言风格特别接地气,一点都不端着,读起来非常轻松愉快,就像是听一位经验丰富的前辈在给你拉家常,分享他的实战心得。对于任何想从零开始搭建自己网络安全知识体系的人来说,这本绝对是首选的入门读物,它为你铺就了一条清晰且充满趣味的学习路径。
坦白讲,我最初是冲着“黑客大曝光”这个略带夸张的书名进来的,心里还担心内容会过于偏向“黑产”或是不正当的技术展示。然而,阅读体验完全超出了我的预期,这本书的基调是极其正向和严谨的。作者清晰地将“防御”与“攻击”的思路并置,强调技术本身是中立的,关键在于使用者的目的。书中花费了大量篇幅阐述如何进行安全审计和构建纵深防御体系,其中的工具介绍和配置指南详尽到令人发指,每一个命令、每一个参数的修改都有详细的解释和潜在影响的说明,根本不是那种只列出‘A’导致‘B’的简单描述。对于需要撰写安全报告或者进行内部安全培训的人来说,这本书提供了一套结构完整、论据充分的专业材料库。它帮助我建立起了一套系统化的安全评估流程,让我从一个只知道修补漏洞的“消防员”,蜕变成为一个能预见火灾风险的“建筑师”。这是一本值得反复翻阅的工具书兼理论宝典。
这本书的价值远超一本单纯的技术手册,它更像是一部浓缩的行业观察报告。作者的笔触非常犀利,对于当前主流应用开发中存在的某些“顽疾”进行了毫不留情的批判,但这种批判是建设性的,充满了对行业未来健康发展的期许。例如,在讨论云安全架构的最新趋势时,作者提出的观点相当前瞻,他没有盲目推崇最新的热门技术,而是冷静地分析了技术落地过程中可能产生的“安全洼地”,这种务实精神非常可贵。全书的案例选择也极具代表性,很多都是近年来业界发生的大事件的缩影,作者通过拆解这些案例,让我们看到了理论是如何在真实世界中被检验和扭曲的。对于从事安全架构设计或者DevOps的工程师来说,这本书提供的不是现成的“补丁”,而是“设计蓝图”,它教你如何从源头上去规避风险,构建具有韧性的系统。它的深度和广度,足以让一个有经验的从业者也能找到新的思考角度。
当我翻开这本厚厚的书时,最初的预期其实是满满的干货和深奥的理论,毕竟“黑客”这个词本身就带着一种神秘感和技术壁垒。然而,这本书带给我的惊喜在于它对“思维模式”的强调,而非仅仅停留在工具和技术的堆砌上。它花了大篇幅去探讨攻击者是如何思考问题的——那种打破常规、质疑默认安全设置的哲学层面的思考。书中对渗透测试流程的描述,与其说是在教你如何操作,不如说是在训练你的逻辑推理能力和逆向思维。特别是关于社会工程学的章节,简直是精彩绝伦,它揭示了技术防护的再高,也抵不过人性的弱点,那种对人际互动心理学的细腻剖析,让我对网络安全有了更深层次的理解:安全是一个系统工程,涉及技术、管理和人。这种从宏观到微观,再回归到人类行为学的视角切换,让整本书的层次感极强,读完后,我觉得自己不仅仅是掌握了一些技术点,更重要的是,我的“安全意识雷达”被彻底激活了。
写得比较混乱,权当参考资料看看
写得比较混乱,权当参考资料看看
数据库黑客大曝光
写得比较混乱,权当参考资料看看
数据库黑客大曝光