软件下载站,为您提供安全的软件下载!

当前位置:首页 > 电脑专区 > 应用软件 > 电子阅读 > sql注入攻击与防御-中文版pdf清晰电子扫描版

sql注入攻击与防御-中文版pdf清晰电子扫描版

分享到:
sql注入攻击与防御是目前唯一一本专门致力于讲解SQL威胁的图书。SQL注入是Internet上最危险、最有名的安全漏洞之一。sql注入攻击与防御作者均是专门研究SQL注入的安全专家,他们集众家之长,对应用程序的基本编码和升级维护进行全面跟踪,详细讲解可能引发SQL注入的行为以及攻击者的利用要素,并结合长期实践经验提出了相应的解决方案。针对SQL注入隐蔽性极强的特点,本书重点讲解了SQL注入的排查方法和可以借助的工具,总结了常见的利用SQL漏洞的方法。另外,本书还专门从代码层和系统层的角度介绍了避免SQL注入的各种策略和需要考虑的问题。本书主要内容:SQL注入一直长期存在,但最近有所增强。什么是SQL注入?理解它是什么以及它的基本原理;查找、确认和自动发现SQL注入;查找代码中SQL注入时的提示和技巧;使用SQL注入创建利用;过设计来避免由SQL攻击所带来的危险。小编分享的这本sql注入攻击与防御共10章,分别介绍了SOL注入的基本概念,如何发现、确认并利用SQL注入和SQL盲注,利用操作系统防御SQL注入,SQL注入的一些高级话题,代码层和平台层防御等知识,书中主要针对的是Microsoft.SQL.Server、My.SQL和Oracle这三大主流数据库。本书注重于实践,涉及的内容也比较前沿,另外,还包含了大量翔实的案例,它们都具有很好的现实指导作用,读者可从中学到最新的攻击和防御技术。
sql注入攻击与防御

sql注入攻击与防御目录:

第1章 什么是SQL注入 1
1.1 概述 2
1.2 理解Web应用的工作原理 2
1.2.1 一种简单的应用架构 3
1.2.2 一种较复杂的架构 4
1.3 理解SQL注入 5
1.4 理解SQL注入的产生过程 10
1.4.1 构造动态字符串 10
1.4.2 不安全的数据库配置 16
1.5 本章小结 18
1.6 快速解决方案 18
1.7 常见问题解答 19
第2章 SQL注入测试 21
2.1 概述 22
2.2 寻找SQL注入 22
2.2.1 借助推理进行测试 22
2.2.2 数据库错误 29
2.2.3 应用响应 38
2.2.4 SQL盲注 42
2.3 确认SQL注入 45
2.3.1 区分数字和字符串 46
2.3.2 内联SQL注入 46
2.3.3 终止式SQL注入 51
2.3.4 时间延迟 59
2.4 自动寻找SQL注入 60
2.5 本章小结 68
2.6 快速解决方案 68
2.7 常见问题解答 69
第3章 复查代码中的SQL注入 71
3.1 概述 72
3.2 复查源代码中的SQL注入 72
3.2.1 危险的编码行为 74
3.2.2 危险的函数 79
3.2.3 跟踪数据 82
3.2.4 复查PL/SQL和T-SQL代码 88
3.3 自动复查源代码第1章 什么是SQL注入 94
3.3.1 YASCA 96
3.3.2 Pixy 96
3.3.3 AppCodeScan 97
3.3.4 LAPSE 97
3.3.5 SWAAT 97
3.3.6 Microsoft SQL注入源代码分析器 98
3.3.7 CAT.NET 98
3.3.8 商业源代码复查工具 98
3.3.9 Ounce 99
3.3.10 Fortify源代码分析器 100
3.3.11 CodeSecure 100
3.4 本章小结 100
3.5 快速解决方案 101
3.6 常见问题解答 102
第4章 利用SQL注入 105
4.1 概述 106
4.2 理解常见的利用技术 107
4.3 识别数据库 108
4.3.1 非盲跟踪 109
4.3.2 盲跟踪 112
4.4 使用UINON语句提取数据 113
4.4.1 匹配列 114
4.4.2 匹配数据类型 115
4.5 使用条件语句 119
4.5.1 方法1:基于时间 120
4.5.2 方法2:基于错误 122
4.5.3 方法3:基于内容 123
4.5.4 处理字符串 123
4.5.5 扩展攻击 125
4.5.6 利用SQL注入错误 126
4.5.7 Oracle中的错误消息 128
4.6 枚举数据库模式 131
4.6.1 SQL Server 131
4.6.2 MySQL 136
4.6.3 Oracle 139
4.7 提升权限 142
4.7.1 SQL Server 142
4.7.2 Oracle 147
4.8 窃取哈希口令 148
4.8.1 SQL Server 149
4.8.2 MySQL 150
4.8.3 Oracle 151
4.9 带外通信 154
4.9.1 E-mail 154
4.9.2 HTTP/DNS 157
4.9.3 文件系统 158
4.10 自动利用SQL注入 161
4.10.1 Sqlmap 161
4.10.2 Bobcat 164
4.10.3 BSQL 164
4.10.4 其他工具 166
4.11 本章小结 166
4.12 快速解决方案 167
4.13 常见问题解答 168
第5章 SQL盲注利用 171
5.1 概述 172
5.2 寻找并确认SQL盲注 173
5.2.1 强制产生通用错误 173
5.2.2 注入带副作用的查询 173
5.2.3 拆分与平衡 173
5.2.4 常见的SQL盲注场景 175
5.2.5 SQL盲注技术 176
5.3 使用基于时间的技术 183
5.3.1 延迟数据库查询 183
5.3.2 基于时间推断的考虑 188
5.4 使用基于响应的技术 189
5.4.1 MySQL响应技术 189
5.4.2 SQL Server响应技术 191
5.4.3 Oracle响应技术 192
5.4.4 返回多位信息 194
5.5 使用非主流通道 195
5.5.1 数据库连接 195
5.5.2 DNS渗漏 196
5.5.3 E-mail渗漏 200
5.5.4 HTTP渗漏 200
5.6 自动SQL盲注利用 202
5.6.1 Absinthe 203
5.6.2 BSQL Hacker 204
5.6.3 SQLBrute 206
5.6.4 Sqlninja 207
5.6.5 Squeeza 208
5.7 本章小结 209
5.8 快速解决方案 209
5.9 常见问题解答 210
第6章 利用操作系统 213
6.1 概述 214
6.2 访问文件系统 215
6.2.1 读文件 215
6.2.2 写文件 229
6.3 执行操作系统命令 237
6.4 巩固访问 243
6.5 本章小结 245
6.6 快速解决方案 245
6.7 常见问题解答 246
6.8 尾注 247
第7章 高级话题 249
7.1 概述 250
7.2 避开输入过滤器 250
7.2.1 使用大小写变种 250
7.2.2 使用SQL注释 250
7.2.3 使用URL编码 251
7.2.4 使用动态的查询执行 253
7.2.5 使用空字节 254
7.2.6 嵌套剥离后的表达式 255
7.2.7 利用截断 255
7.2.8 避开自定义过滤器 257
7.2.9 使用非标准入口点 257
7.3 利用二阶SQL注入 259
7.4 使用混合攻击 263
7.4.1 修改捕获的数据 263
7.4.2 创建跨站脚本 263
7.4.3 在Oracle上运行操作系统命令 264
7.4.4 利用验证过的漏洞 265
7.5 本章小结 265
7.6 快速解决方案 266
7.7 常见问题解答 267
第8章 代码层防御 269
8.1 概述 270
8.2 使用参数化语句 270
8.2.1 Java中的参数化语句 271
8.2.2 .NET(C#)中的参数化语句 272
8.2.3 PHP中的参数化语句 274
8.2.4 PL/SQL中的参数化语句 275
8.3 输入验证 275
8.3.1 白名单 276
8.3.2 黑名单 277
8.3.3 Java中的输入验证 278
8.3.4 .NET中的输入验证 279
8.3.5 PHP中的输入验证 280
8.4 编码输出 280
8.5 规范化 286
8.6 通过设计来避免SQL注入的危险 289
8.6.1 使用存储过程 289
8.6.2 使用抽象层 290
8.6.3 处理敏感数据 290
8.6.4 避免明显的对象名 291
8.6.5 创建数据库Honeypot 292
8.6.6 附加的安全开发资源 293
8.7 本章小结 293
8.8 快速解决方案 294
8.9 常见问题解答 295
第9章 平台层防御 297
9.1 概述 298
9.2 使用运行时保护 298
9.2.1 Web应用防火墙 299
9.2.2 截断过滤器 304
9.2.3 不可编辑的输入保护与可编辑的输入保护 308
9.2.4 URL策略/页面层策略 308
9.2.5 面向方面编程 309
9.2.6 应用入侵检测系统 310
9.2.7 数据库防火墙 310
9.3 确保数据库安全 310
9.3.1 锁定应用数据 311
9.3.2 锁定数据库服务器 314
9.4 额外的部署考虑 316
9.4.1 最小化不必要信息的泄露 317
9.4.2 提高Web服务器日志的冗余 320
9.4.3 在独立主机上部署Web服务器和数据库服务器 320
9.4.4 配置网络访问控制 321
9.5 本章小结 321
9.6 快速解决方案 321
9.7 常见问题解答 322
第10章 参考资料 325
10.1 概述 326
10.2 SQL入门 326
10.3 SQL注入快速参考 331
10.3.1 识别数据库平台 331
10.3.2 Microsoft SQL Server备忘单 333
10.3.3 MySQL备忘单 338
10.3.4 Oracle备忘单 341
……

免责声明:

来源于网络,仅用于分享知识,学习和交流!请下载完在24小时内删除。
禁用于商业用途!如果您喜欢《sql注入攻击与防御》,请购买正版,谢谢合作。
爱学习,请到3322软件站查找资源自行下载!

精彩文摘:

......
8.9 常见问题解答问题:为什么不能使用参数化语句来提供表名或列名?
解答:不能在参数化语句中提供SQL标识符,是因为在数据库中它们会被编译并且之后会被提供的数据填充。这要求SQL标识符在提供数据之前的编译期间出现。
问题:为什么不能拥有参数化的ORDERBY子句?
解答:这个问题的答案与上一问题相同,因为ORDERBY包含一个SQL标识符,也就是要进行排序的列。
问题:如何在x技术中对Y数据库使用参数化语句?
解答:大多数现代编程语言和数据库均支持参数化语句。请查看当前使用的数据库访问API的文档。请记住,有时也将这些语句称为预处理语句。
问题:怎样参数化一个存储过程调用?
解答:在大多数编程语言中,这与使用参数化语句非常类似或者完全相同。请查询当前使用的数据库访问API的文档。请记住,有时也将这些语句称为可调用语句。
问题:从哪里获取良好的用于验证x的黑名单?
解答:非常不幸,向黑名单中放入什么内容取决于应用的语境。如果可能的话,请尽量不要使用黑名单,因为我们无法列举出所有的潜在攻击或恶意输入。如果必须使用黑名单,则请确保您要么使用输出编码,要么将黑名单输入验证作为唯一的验证方法。
问题:使用白名单输入验证是安全的吗?
解答:不是。这取决于您允许通过的内容。例如,可能允许输入单引号,当在动态SQL中包含这样的输入时就会产生问题。
问题:哪些场合比较适合使用白名单输入验证?哪些场合适合使用黑名单输入验证?
解答:应该在应用中接收输入的地方使用白名单输入验证,以便对敏感内容应用验证。在Web应用防火墙或类似的位置适合将黑名单验证作为附加的控制,以此来检测明显的SQL注入攻击企图。
问题:需要对发送给数据库和从数据库获取的输入都进行编码吗?为什么?
解答:不管在哪里使用动态SQL,都需要确保提交给数据库的内容不会引发SQL注入问题。这并不意味着恶意内容已经变得安全。当从数据库查询这些内容并在其他地方的动态SOL中使用时,还是会存在危险。
问题:应该在哪些位置进行编码?
解答:应该在使用信息的位置附近进行编码。如果在数据未到达数据库之前向数据库提交数据,那么就应该对数据进行编码。应该在有可能使用数据的位置附近(例如,将数据展示给用户之前针对跨站脚本编码)或者在动态SQL中使用数据之前(针对SQL注入编码)对来自数据库的数据进行编码。
……

下载说明:

方法一:
1、下载并解压,得出pdf文件
2、如果打不开本文件,别着急,这时候请务必在3322软件站选择一款阅读器下载哦
3、安装后,再打开解压得出的pdf文件
4、以上都完成后,接下来双击进行阅读就可以啦,朋友们开启你们的阅读之旅吧。
方法二:
1、可以在手机里下载3322软件站中的阅读器和百度网盘
2、接下来直接将pdf传输到百度网盘
3、用阅读器打开即可阅读
展开更多

软件截图

sql注入攻击与防御-中文版pdf清晰电子扫描版下载地址

下载提示

sql注入攻击与防御-中文版pdf清晰电子扫描版

正在下载...

扫描二维码,手机下载APP

软件下载站本地下载

相关文章