《黑客入侵网页攻防修炼》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:德瑞工作室著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2008
  • ISBN:9787121067648
  • 页数:298 页
图书介绍:本书将PHP的技术技巧与Web应用相结合,分别对黑客的入侵和页面设计时的防范措施做了深入浅出的分析,通过实例演示了包括Command Injection、Script Insertion、XSS、SQL Injection、CSRF、Session Hijacking、HTTP Response Splitting等在内的十八种技术,这其中包含了作者对网页安全的独到见解。本书以一种清晰而简练的风格介绍了黑客惯用的技术要点,通过大量的示例演示了这种入侵是如何发生的,并指导读者如何防止类似问题的发生。在透彻的介绍基础知识的同时,还加入了作者自己的应用经验,大大提高自己的编程能力和应用水平。

第1章 PHP网页的安全性 1

1.1 什么是安全性 2

1.1.1 黑客攻击的方式 2

1.1.2 PHP网页的安全性问题 3

1.2 RegisterGlobals 4

1.3 安全模式 7

1.3.1 限制文件的存取 8

1.3.2 限制环境变量的存取 8

1.3.3 限制外部程序的执行 9

1.4 MagicQuotes 9

1.4.1 使用MagicQuotes的好处 10

1.4.2 使用MagicQuotes的坏处 10

1.4.3 取消MagicQuotes功能 11

1.5 修改PHP的设定值 11

1.5.1 在php.ini文件中修改设定值 12

1.5.2 在httpd.conf文件中修改设定值 13

1.5.3 在.htaccess文件中修改设定值 13

1.5.4 在程序中修改设定值 13

第2章 Command Injection-命令注入攻击 15

2.1 PHP的命令执行函数 16

2.1.1 System函数 16

2.1.2 Exec函数 17

2.1.3 passthru函数 18

2.1.4 shellexec函数 18

2.1.5 运算符 19

2.2 命令注入攻击 19

2.2.1 攻击实例一 19

2.2.2 攻击实例二 20

2.2.3 攻击实例三 21

2.2.4 命令注入的方式 21

2.3 eval注入攻击 22

2.3.1 攻击没有作用 23

2.3.2 可变变量 24

2.3.3 prereplace函数 24

2.3.4 ace函数 26

2.3.5 动态函数 27

2.3.6 calluserfiunc函数 29

2.4 防范的方法 30

2.4.1 使用escapeshellarg函数来处理命令的参数 30

2.4.2 使用safemodeexecdir指定的可执行文件的路径 32

第3章 ScriptInsertion-客户端脚本植入攻击 33

3.1 客户端脚本植入攻击 34

3.2 攻击实例:在留言板中插入脚本 35

3.2.1 开始攻击:显示简单的对话框 37

3.2.2 没有显示对话框 38

3.2.3 打开InternetExplorer的活动脚本功能 39

3.2.4 关闭PHP的magic_quotes_gpc 40

3.2.5 利用数据库来攻击 41

3.2.6 本章的数据库 42

3.2.7 浏览植入脚本的留言 44

3.2.8 破坏性的攻击手法:显示无穷尽的新窗口 45

3.2.9 引诱性的攻击手法:跳转网址 46

3.3 防范的方法 48

3.3.1 HTML输出过滤 48

3.3.2 使用stip_tags函数来进行HTML输出过滤 48

3.3.3 stip_tags函数的缺点 50

3.3.4 使用htmlspecialchars函数来进行HTML输出过滤 52

第4章 XSS-跨网站脚本攻击 53

4.1 什么是“跨网站脚本攻击” 56

4.2 跨网站脚本攻击 58

4.2.1 本章的数据库 60

4.2.2 登录首页 61

4.2.3 如何攻击 62

4.2.4 开始攻击 62

4.2.5 没有显示对话框 64

4.2.6 如何取得目标用户的cookie内容 64

4.2.7 服务器的记录文件 67

4.3 防范的方法 67

4.4 隐藏在$_SERVER["PHP_SELF"]变量内的脚本 70

4.4.1 实际范例 71

4.4.2 拆解<form>标签的内容 73

4.4.3 避免$_SERVER["PHP_SELF"]被篡改 74

第5章 SQLInjection-SQL注入攻击 77

5.1 SQL注入攻击 78

5.2 攻击实例:绕过账号、密码的检查 79

5.2.1 如何攻击 81

5.2.2 开始攻击 82

5.2.3 只填入账号 84

5.3 攻击实例:删除数据库的所有记录 84

5.3.1 删除留言的记录 86

5.3.2 如何攻击 87

5.3.3 开始攻击 88

5.4 攻击实例:盗取密码 89

5.4.1 如何攻击 91

5.4.2 开始攻击 91

5.5 防范的方法 93

5.5.1 数字型变量的过滤方式 93

5.5.2 字符串变量的过滤方式:使用addslashes函数 94

第6章 CSRF-跨网站请求伪造攻击 97

6.1 跨网站请求伪造攻击 98

6.2 攻击实例:删除数据库的一条记录 99

6.2.1 删除留言的记录 101

6.2.2 如何攻击 102

6.2.3 开始攻击 103

6.3 攻击实例:新增数据库的一条记录 104

6.3.1 如何攻击 105

6.3.2 开始攻击 106

6.4 防范的方法 107

6.4.1 检查网页的来源 108

6.4.2 检查内置的隐藏变量 111

6.4.3 使用POST,不要使用GET 113

第7章 SessionHijacking-会话劫持攻击 115

7.1 什么是Session 116

7.1.1 sessionid 116

7.1.2 Session的名称 118

7.2 PHP的Session机制 119

7.2.1 URL参数 119

7.2.2 表单中隐藏属性的文本框 120

7.2.3 Cookie 121

7.3 会话劫持攻击 123

7.3.1 攻击的步骤 124

7.3.2 如何攻击 124

7.3.3 开始攻击 127

7.4 Session固定攻击 129

7.4.1 攻击的步骤 130

7.4.2 攻击的方式 131

7.5 防范的方法 132

7.5.1 定期更改sessionid 132

7.5.2 更改Session的名称 133

7.5.3 关闭透明化sessionid的功能 133

7.5.4 只从cookie检查sessionid 134

7.5.5 检查浏览器是否改变 134

7.5.6 使用URL传递秘密参数 135

第8章 HTTPResponseSplitting-HTTP响应拆分攻击 137

8.1 HTTP简介 138

8.1.1 HTTP请求的格式 138

8.1.2 HTTP请求的方法 139

8.1.3 HTTP响应的格式 139

8.1.4 使用header函数发送HTTP表头 143

8.1.5 使用PHP的函数来替代Telnet 143

8.2 HTTP响应拆分攻击 144

8.3 攻击实例:跳转地址 149

8.4 与Session固定结合攻击 150

8.5 防范的方法 150

8.5.1 将session.useonly_cookies设置为1 152

8.5.2 使用最新版的PHP 152

8.6 隐藏HTTP响应表头 152

第9章 FileUploadAttack-文件上传攻击 155

9.1 文件上传 156

9.1.1 上传文件的大小 157

9.1.2 $FILES数组变量 158

9.1.3 存放上传文件的文件夹 159

9.1.4 上传文件时的错误信息 159

9.2 文件上传攻击 159

9.2.1 上传可执行文件 160

9.2.2 覆盖原有文件 162

9.2.3 瘫痪网站 162

9.2.4 存取上传的文件数据 162

9.3 防范的方法 162

9.3.1 关掉上传文件的功能 163

9.3.2 限制允许上传的文件大小 163

9.3.3 检查是否真的是上传的文件 164

9.3.4 更改临时文件夹的路径 166

9.3.5 读取上传文件的绝对路径与文件名称 167

9.3.6 隐藏文件的路径 168

第10章 目录/文件攻击 169

10.1 目录穿越攻击 170

10.1.1 如何攻击 170

10.1.2 开始攻击 171

10.1.3 Microsoft的IIS服务器 173

10.2 远程文件引入攻击 173

10.2.1 如何攻击 174

10.2.2 开始攻击 174

10.2.3 与目录穿越结合攻击 175

10.2.4 与HTTP响应分割结合攻击 177

10.3 防范的方法 179

10.3.1 使用者输入的文件名 179

10.3.2 设置openbasedir 181

10.3.3 设置allowurlfopen为Off 182

10.3.4 使用realpath与basename函数来处理文件名 182

第11章 其他的攻击 183

11.1 变量指定攻击 184

11.2 URL攻击 187

11.2.1 开始攻击 187

11.2.2 防范的方法 188

11.3 表单欺骗攻击 189

11.4 HTTP请求欺骗攻击 191

11.5 拒绝服务攻击 193

11.5.1 SYNFlood攻击 194

11.5.2 LAND攻击 195

11.5.3 PingofDeath攻击 195

11.5.4 PingFlood攻击 195

11.5.5 Teardrop攻击 195

11.5.6 Pear-to-pear攻击 196

11.5.7 分布式拒绝服务攻击 196

11.5.8 防范的方法 196

11.5.9 SYNCookies 197

11.5.10 防火墙 197

11.5.11 分享器与路由器 197

11.5.12 应用程序前端硬件 197

11.6 网页劫持攻击 198

11.7 缓冲区溢位攻击 198

11.7.1 基本范例 199

11.7.2 堆栈溢出 199

第12章 攻击手法汇总 201

12.1 命令注入攻击 202

12.1.1 程序代码漏洞1 202

12.1.2 攻击手法1 202

12.1.3 程序代码漏洞2. 203

12.1.4 攻击手法2. 203

12.1.5 命令注入的方式 203

12.1.6 防范的方法 204

12.2 eval注入攻击 204

12.2.1 程序代码漏洞1 204

12.2.2 攻击手法 205

12.2.3 程序代码漏洞2 205

12.2.4 攻击手法 205

12.2.5 程序代码漏洞3 206

12.2.6 攻击手法 206

12.2.7 程序代码漏洞4 206

12.2.8 攻击手法 206

12.2.9 防范的方法 207

12.3 客户端脚本注入攻击 207

12.3.1 程序代码漏洞1 207

12.3.2 攻击手法 207

12.3.3 程序代码漏洞2 207

12.3.4 攻击手法 208

12.3.5 防范的方法 208

12.4 跨网站脚本攻击 208

12.4.1 程序代码漏洞1 209

12.4.2 攻击手法 209

12.4.3 程序代码漏洞2 209

12.4.4 攻击手法 209

12.4.5 防范的方法 209

12.5 SQL注入攻击 210

12.5.1 程序代码漏洞1 210

12.5.2 攻击手法 211

12.5.3 程序代码漏洞2 211

12.5.4 攻击手法 211

12.5.5 程序代码漏洞3 211

12.5.6 攻击手法 212

12.5.7 防范的方法 212

12.6 跨网站请求伪造攻击 213

12.6.1 程序代码漏洞1 213

12.6.2 攻击手法 214

12.6.3 程序代码漏洞2 214

12.6.4 攻击手法 214

12.6.5 防范的方法 215

12.7 Session劫持攻击 216

12.7.1 程序代码漏洞 216

12.7.2 攻击手法 217

12.7.3 防范的方法 217

12.8 Session固定攻击 218

12.8.1 程序代码漏洞 218

12.8.2 攻击手法 218

12.8.3 防范的方法 219

12.9 HTTP响应拆分攻击 221

12.9.1 程序代码漏洞1 221

12.9.2 攻击手法 221

12.9.3 程序代码漏洞2. 222

12.9.4 攻击手法 222

12.9.5 防范的方法 222

12.10 文件上传攻击 223

12.10.1 程序代码漏洞 223

12.10.2 攻击手法 224

12.10.3 防范的方法 224

12.11 目录穿越攻击 225

12.11.1 程序代码漏洞 225

12.11.2 攻击手法 226

12.11.3 防范的方法 226

12.12 远程文件引入攻击 226

12.12.1 程序代码漏洞 227

12.12.2 攻击手法1 227

12.12.3 攻击手法2 227

12.12.4 防范的方法 227

12.13 变量指定攻击 228

12.13.1 程序代码漏洞 228

12.13.2 攻击手法 228

12.13.3 防范的方法 229

第13章 漏洞扫描器 231

13.1 什么是“漏洞扫描器” 232

13.2 Nessus漏洞扫描器 232

13.2.1 Nessus的特点 233

13.2.2 下载与安装 233

13.2.3 执行Nessus 234

13.2.4 Nessus检查漏洞的方式 237

13.3 MaxPatrol漏洞扫描器 238

13.4 Paros漏洞扫描器 240

13.4.1 Paros的特点 240

13.4.2 下载与安装 241

13.4.3 设置浏览器的Proxy 241

13.4.4 执行Paros 243

13.4.5 扫描漏洞 244

13.4.6 检视HTTP请求与响应的内容 245

13.4.7 Paros的Trap功能 245

13.4.8 URL编码与解码 246

第14章 开发安全的Web程序 247

14.1 什么是“安全的Web应用程序” 248

14.2 过滤输入的数据 248

14.2.1 为什么要过滤数据 249

14.2.2 基本的数据过滤程序 251

14.2.3 数字数据的过滤 252

14.2.4 字符串数据的过滤 253

14.2.5 HTML与PHP标签的过滤 254

14.2.6 文件路径的过滤 255

14.2.7 序列化字符串的过滤 256

14.3 转义输出的数据 257

14.3.1 基本的转义程序 257

14.3.2 转义SQL表达式的字符串 258

14.3.3 使用addslashes函数 258

14.4 RegisterGlobals 259

14.4.1 隐藏RegisterGlobals所发生的问题 260

14.4.2 $_REQUEST变量 261

14.4.3 $SERVER变量 261

14.5 magicquotes_gpc 261

14.6 错误信息的报告 262

14.7 文件的安全 263

14.8 Session的安全 264

14.8.1 Session固定攻击 264

14.8.2 Session的保存 265

14.9 虚拟主机 266

14.9.1 可预测的临时文件名称 266

14.9.2 隐藏表头的信息 267

14.9.3 系统异常的监测 267

附录A Telnet使用说明 269

A.l Telnet简介 270

A.2 打开Windows的Telnet服务 270

A.3 Telnet使用说明 272

A.4 使用Telnet连接到本地主机 273

A.5 在HTTP表头内加上要执行的文件 275

附录B 查看HTTP请求与响应的实际内容 277

B.1 如何查看HTTP请求与响应的实际内容 280

B.2 修改HTTP请求/响应的内容 281

B.3 显示HTTP请求/响应的参数 282

B.4 显示上传文件的HTTP请求 283

附录C URL编码与解码 285

附录D 构建PHP的测试环境 285

D.1 AppServ整合包 288

D.2 安装AppServ整合包 289

D.3 测试AppServ是否正确安装 293

D.4 服务器的文件夹位置 293

附录E 找出网站的IP地址 285

E.1 使用Ping命令 296

E.2 使用NetInfo 296

E.3 无法找出IP地址 297