标题：黑客入侵网页攻防修炼
版权信息
  书 名: 黑客入侵网页攻防修炼
作　者：德瑞工作室
出版社： 电子工业出版社
定价：￥38.00
内容简介
本书将PHP的技术技巧与Web应用相结合，分别对黑客的入侵和页面设计时的防范措施进行了深入浅出的分析，通过实例演示了包括CommandInjection、ScriptInsertion、XSS、SQLInjection、CSRF、SessionHijacking和HTTPResponseSplitting等在内的18种技术，这其中包含了作者对网页安全的独到见解。
图书目录
第1章PHP网页的安全性1
1.1什么是安全性2
1.1.1黑客攻击的方式2
1.1.2PHP网页的安全性问题3
1.2RegisterGlobals4
1.3安全模式7
1.3.1限制文件的存取8
1.3.2限制环境变量的存取8
1.3.3限制外部程序的执行9
1.4MagicQuotes9
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章CommandInjection–命令注入攻击15
2.1PHP的命令执行函数16
2.1.1System函数16
2.1.2Exec函数17
2.1.3passthru函数18
2.1.4shell_exec函数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.3eval注入攻击22
2.3.1攻击没有作用23
2.3.2可变变量24
2.3.3pre_replace函数24
2.3.4ace函数26
2.3.5动态函数27
2.3.6call_user_func函数29
2.4防范的方法30
2.4.1使用escapeshellarg函数来处理命令的参数30
2.4.2使用safe_mode_exec_dir指定的可执行文件的路径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_gpc40
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.1HTML输出过滤48
3.3.2使用strip_tags函数来进行HTML输出过滤48
3.3.3strip_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拆解 标签的内容73
4.4.3避免$_SERVER["PHP_SELF"]被篡改74
第5章SQLInjection–SQL注入攻击77
5.1SQL注入攻击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，不要使用GET113
第7章SessionHijacking–会话劫持攻击115
7.1什么是Session116
7.1.1sessionid116
7.1.2Session的名称118
7.2PHP的Session机制119
7.2.1URL参数119
7.2.2表单中隐藏属性的文本框120
7.2.3Cookie121
7.3会话劫持攻击123
7.3.1攻击的步骤124
7.3.2如何攻击124
7.3.3开始攻击127
7.4Session固定攻击129
7.4.1攻击的步骤130
7.4.2攻击的方式131
7.5防范的方法132
7.5.1定期更改sessionid132
7.5.2更改Session的名称133
7.5.3关闭透明化sessionid的功能133
7.5.4只从cookie检查sessionid134
7.5.5检查浏览器是否改变134
7.5.6使用URL传递秘密参数135
第8章HTTPResponseSplitting–HTTP响应拆分攻击137
8.1HTTP简介138
8.1.1HTTP请求的格式138
8.1.2HTTP请求的方法139
8.1.3HTTP响应的格式139
8.1.4使用header函数发送HTTP表头143
8.1.5使用PHP的函数来替代Telnet143
8.2HTTP响应拆分攻击144
8.3攻击实例：跳转地址149
8.4与Session固定结合攻击150
8.5防范的方法150
8.5.1将session.use_only_cookies设置为1152
8.5.2使用最新版的PHP152
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.3Microsoft的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设置open_basedir181
10.3.3设置allow_url_fopen为Off182
10.3.4使用realpath与basename函数来处理文件名182
第11章其他的攻击183
11.1变量指定攻击184
11.2URL攻击187
11.2.1开始攻击187
11.2.2防范的方法188
11.3表单欺骗攻击189
11.4HTTP请求欺骗攻击191
11.5拒绝服务攻击193
11.5.1SYNFlood攻击194
11.5.2LAND攻击195
11.5.3PingofDeath攻击195
11.5.4PingFlood攻击195
11.5.5Teardrop攻击195
11.5.6Pear-to-pear攻击196
11.5.7分布式拒绝服务攻击196
11.5.8防范的方法196
11.5.9SYNCookies197
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程序代码漏洞1202
12.1.2攻击手法1202
12.1.3程序代码漏洞2203
12.1.4攻击手法2203
12.1.5命令注入的方式203
12.1.6防范的方法204
12.2eval注入攻击204
12.2.1程序代码漏洞1204
12.2.2攻击手法205
12.2.3程序代码漏洞2205
12.2.4攻击手法205
12.2.5程序代码漏洞3206
12.2.6攻击手法206
12.2.7程序代码漏洞4206
12.2.8攻击手法206
12.2.9防范的方法207
12.3客户端脚本注入攻击207
12.3.1程序代码漏洞1207
12.3.2攻击手法207
12.3.3程序代码漏洞2207
12.3.4攻击手法208
12.3.5防范的方法208
12.4跨网站脚本攻击208
12.4.1程序代码漏洞1209
12.4.2攻击手法209
12.4.3程序代码漏洞2209
12.4.4攻击手法209
12.4.5防范的方法209
12.5SQL注入攻击210
12.5.1程序代码漏洞1210
12.5.2攻击手法211
12.5.3程序代码漏洞2211
12.5.4攻击手法211
12.5.5程序代码漏洞3211
12.5.6攻击手法212
12.5.7防范的方法212
12.6跨网站请求伪造攻击213
12.6.1程序代码漏洞1213
12.6.2攻击手法214
12.6.3程序代码漏洞2214
12.6.4攻击手法214
12.6.5防范的方法215
12.7Session劫持攻击216
12.7.1程序代码漏洞216
12.7.2攻击手法217
12.7.3防范的方法217
12.8Session固定攻击218
12.8.1程序代码漏洞218
12.8.2攻击手法218
12.8.3防范的方法219
12.9HTTP响应拆分攻击221
12.9.1程序代码漏洞1221
12.9.2攻击手法221
12.9.3程序代码漏洞2222
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攻击手法1227
12.12.3攻击手法2227
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.2Nessus漏洞扫描器232
13.2.1Nessus的特点233
13.2.2下载与安装233
13.2.3执行Nessus234
13.2.4Nessus检查漏洞的方式237
13.3MaxPatrol漏洞扫描器238
13.4Paros漏洞扫描器240
13.4.1Paros的特点240
13.4.2下载与安装241
13.4.3设置浏览器的Proxy241
13.4.4执行Paros243
13.4.5扫描漏洞244
13.4.6检视HTTP请求与响应的内容245
13.4.7Paros的Trap功能245
13.4.8URL编码与解码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.5HTML与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.4RegisterGlobals259
14.4.1隐藏RegisterGlobals所发生的问题260
14.4.2$_REQUEST变量261
14.4.3$_SERVER变量261
14.5magic_quotes_gpc261
14.6错误信息的报告262
14.7文件的安全263
14.8Session的安全264
14.8.1Session固定攻击264
14.8.2Session的保存265
14.9虚拟主机266
14.9.1可预测的临时文件名称266
14.9.2隐藏表头的信息267
14.9.3系统异常的监测267
附录
附录ATelnet使用说明269
A.1Telnet简介270
A.2打开Windows的Telnet服务270
A.3Telnet使用说明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
附录CURL编码与解码285
附录D构建PHP的测试环境285
D.1AppServ整合包288
D.2安装AppServ整合包289
D.3测试AppServ是否正确安装293
D.4服务器的文件夹位置293
附录E找出网站的IP地址285
E.1使用Ping命令296
E.2使用NetInfo296
E.3无法找出IP地址297
……