《黑客攻防技术宝典:Web实战篇(第2版)》是探索和研究Web应用程序安全漏洞的实践指南。作者利用大量的实际案例和示例代码,详细介绍了各类Web应用程序的弱点,并深入阐述了如何针对Web应用程序进行具体的渗透测试。《黑客攻防技术宝典:Web实战篇(第2版)》从介绍当前Web应用程序安全概况开始,重点讨论渗透测试时使用的详细步骤和技巧,总结书中涵盖的主题。每章后还附有习题,便于读者巩固所学内容。第2版新增了Web应用程序安全领域近年来的发展变化新情况,并以尝试访问的链接形式提供了几百个互动式"漏洞实验室",便于读者迅速掌握各种攻防知识与技能。《黑客攻防技术宝典:Web实战篇(第2版)》适合各层次计算机安全人士和Web开发与管理领域的技术人员阅读。
安全技术宝典全新升级
亚马逊书店五星赞誉
深入剖析,实战演练,使你如饮醍醐
推荐组合购买:
黑客攻防技术宝典:iOS实战篇 (iOS平台破解与攻防书,美国国家安全局全球网络漏洞攻击分析师、连续4年Pwn2Own黑客竞赛大奖得主Charlie Miller领衔,6位信息安全专家倾情奉献,阵容豪华、内容、、不容错过!)
Dafydd Stuttard 世界知名安全顾问、作家、软件开发人士。牛津大学博士,MDSec公司联合创始人,尤其擅长Web应用程序和编译软件的渗透测试。Dafydd以网名PortSwigger蜚声安全界,是众所周知的Web应用程序集成攻击平台Burp Suite的开发者。 Marcus Pinto 博学渗透测试专家,剑桥大学硕士,MDSec公司联合创始人。Marcus为全球金融、政府、电信、博彩、零售等行业组织和机构提供Web应用程序渗透测试和安全防御的咨询与培训。
目录
第1章Web应用程序安全与风险1
1.1Web应用程序的发展历程1
1.1.1Web应用程序的常见功能3
1.1.2Web应用程序的优点4
1.2Web应用程序安全4
1.2.1"本站点是安全的"5
1.2.2核心安全问题:用户可提交任意输入6
1.2.3关键问题因素7
1.2.4新的安全边界8
1.2.5Web应用程序安全的未来10
1.3小结10
第2章核心防御机制12
2.1处理用户访问12
2.1.1身份验证13
2.1.2会话管理13
2.1.3访问控制14
2.2处理用户输入15
2.2.1输入的多样性15
2.2.2输入处理方法16
2.2.3边界确认18
2.2.4多步确认与规范化20
2.3处理攻击者21
2.3.1处理错误21
2.3.2维护审计日志22
2.3.3向管理员发出警报23
2.3.4应对攻击24
2.4管理应用程序25
2.5小结26
2.6问题26
第3章Web应用程序技术27
3.1HTTP27
3.1.1HTTP请求27
3.1.2HTTP响应28
3.1.3HTTP方法29
3.1.4URL30
3.1.5REST31
3.1.6HTTP消息头31
3.1.7cookie33
3.1.8状态码33
3.1.9HTTPS34
3.1.10HTTP35
3.1.11HTTP身份验证35
3.2Web功能36
3.2.1服务器端功能36
3.2.2客户端功能40
3.2.3状态与会话46
3.3编码方案47
3.3.1URL编码47
3.3.2Unicode编码48
3.3.3HTML编码48
3.3.4Base64编码49
3.3.5十六进制编码49
3.3.6远程和序列化框架49
3.4下一步50
3.5问题50
第4章解析应用程序51
4.1枚举内容与功能51
4.1.1Web抓取51
4.1.2用户指定的抓取54
4.1.3发现隐藏的内容56
4.1.4应用程序页面与功能路径67
4.1.5发现隐藏的参数69
4.2分析应用程序69
4.2.1确定用户输入入口点70
4.2.2确定服务器端技术72
4.2.3确定服务器端功能76
4.2.4解析受攻击面79
4.2.5解析Extreme Internet Shopping应用程序80
4.3小结81
4.4问题82
第5章避开客户端控件83
5.1通过客户端传送数据83
5.1.1隐藏表单字段84
5.1.2HTTP cookie86
5.1.3URL参数86
5.1.4Referer消息头86
5.1.5模糊数据88
5.1.6ASP.NET ViewState89
5.2收集用户数据:HTML表单91
5.2.1长度限制91
5.2.2基于脚本的确认93
5.2.3禁用的元素94
5.3收集用户数据:浏览器扩展95
5.3.1常见的浏览器扩展技术96
5.3.2攻击浏览器扩展的方法97
5.3.3拦截浏览器扩展的流量97
5.3.4反编译浏览器扩展100
5.3.5附加调试器109
5.3.6本地客户端组件111
5.4安全处理客户端数据112
5.4.1通过客户端传送数据112
5.4.2确认客户端生成的数据112
5.4.3日志与警报113
5.5小结114
5.6问题114
第6章攻击验证机制115
6.1验证技术115
6.2验证机制设计缺陷116
6.2.1密码保密性不强116
6.2.2蛮力攻击登录117
6.2.3详细的失败消息120
6.2.4证书传输易受攻击122
6.2.5密码修改功能124
6.2.6忘记密码功能125
6.2.7"记住我"功能127
6.2.8用户伪装功能129
6.2.9证书确认不完善131
6.2.10非性用户名131
6.2.11可预测的用户名132
6.2.12可预测的初始密码133
6.2.13证书分配不安全133
6.3验证机制执行缺陷134
6.3.1故障开放登录机制134
6.3.2多阶段登录机制中的缺陷135
6.3.3不安全的证书存储138
6.4保障验证机制的安全139
6.4.1使用的证书140
6.4.2安全处理证书140
6.4.3正确确认证书141
6.4.4防止信息泄露142
6.4.5防止蛮力攻击143
6.4.6防止滥用密码修改功能144
6.4.7防止滥用账户恢复功能145
6.4.8日志、监控与通知146
6.5小结146
6.6问题147
第7章攻击会话管理148
7.1状态要求148
7.2会话令牌生成过程中的薄弱环节151
7.2.1令牌有一定含义152
7.2.2令牌可预测153
7.2.3加密令牌162
7.3会话令牌处理中的薄弱环节170
7.3.1在网络上泄露令牌170
7.3.2在日志中泄露令牌173
7.3.3令牌—会话映射易受攻击175
7.3.4会话终止易受攻击176
7.3.5客户端暴露在令牌劫持风险之中177
7.3.6宽泛的cookie范围178
7.4保障会话管理的安全180
7.4.1生成强大的令牌181
7.4.2在整个生命周期保障令牌的安全182
7.4.3日志、监控与警报184
7.5小结185
7.6问题185
第8章攻击访问控制187
8.1常见漏洞187
8.1.1不受保护的功能188
8.1.2基于标识符的功能190
8.1.3多阶段功能191
8.1.4静态文件191
8.1.5平台配置错误192
8.1.6访问控制方法不安全192
8.2攻击访问控制193
8.2.1使用不同用户账户进行测试194
8.2.2测试多阶段过程197
8.2.3通过有限访问权限进行测试199
8.2.4测试"直接访问方法"201
8.2.5测试对静态资源的控制202
8.2.6测试对HTTP方法实施的限制202
8.3保障访问控制的安全203
8.4小结206
8.5问题207
第9章攻击数据存储区208
9.1注入解释型语言208
9.2注入SQL210
9.2.1利用一个基本的漏洞211
9.2.2注入不同的语句类型213
9.2.3查明SQL注入漏洞216
9.2.4"指纹"识别数据库219
9.2.5UNION操作符220
9.2.6提取有用的数据224
9.2.7使用UNION提取数据224
9.2.8避开过滤226
9.2.9二阶SQL注入227
9.2.10高级利用229
9.2.11SQL注入之外:扩大数据库攻击范围236
9.2.12使用SQL注入工具238
9.2.13SQL语法与错误参考241
9.2.14防止SQL注入246
9.3注入NoSQL249
9.4注入XPath250
9.4.1破坏应用程序逻辑251
9.4.2谨慎XPath注入252
9.4.3盲目XPath注入252
9.4.4查找XPath注入漏洞253
9.4.5防止XPath注入254
9.5注入LDAP254
9.5.1利用LDAP注入255
9.5.2查找LDAP注入漏洞257
9.5.3防止LDAP注入258
9.6小结258
9.7问题258
第10章测试后端组件260
10.1注入操作系统命令260
10.1.1例1:通过Perl注入261
10.1.2例2:通过ASP注入262
10.1.3通过动态执行注入264
10.1.4查找OS命令注入漏洞264
10.1.5查找动态执行漏洞267
10.1.6防止OS命令注入268
10.1.7防止脚本注入漏洞268
10.2操作文件路径268
10.2.1路径遍历漏洞269
10.2.2文件包含漏洞278
10.3注入XML解释器279
10.3.1注入XML外部实体279
10.3.2注入SOAP281
10.3.3查找并利用SOAP注入283
10.3.4防止SOAP注入284
10.4注入后端HTTP请求284
10.4.1服务器端HTTP重定向285
10.4.2HTTP参数注入287
10.5注入电子邮件290
10.5.1操纵电子邮件标头290
10.5.2SMTP命令注入291
10.5.3查找SMTP注入漏洞292
10.5.4防止SMTP注入293
10.6小结294
10.7问题294
第11章攻击应用程序逻辑296
11.1逻辑缺陷的本质296
11.2现实中的逻辑缺陷297
11.2.1例1:征求提示297
11.2.2例2:欺骗密码修改功能298
11.2.3例3:直接结算299
11.2.4例4:修改保险单300
11.2.5例5:入侵银行302
11.2.6例6:规避交易限制303
11.2.7例7:获得大幅折扣305
11.2.8例8:避免转义305
11.2.9例9:避开输入确认306
11.2.10例10:滥用搜索功能308
11.2.11例11:利用调试消息310
11.2.12例12:与登录机制竞赛311
11.3避免逻辑缺陷312
11.4小结313
11.5问题314
第12章攻击其他用户315
12.1XSS的分类316
12.1.1反射型XSS漏洞316
12.1.2保存型XSS漏洞320
12.1.3基于DOM的XSS漏洞322
12.2进行中的XSS攻击323
12.2.1真实XSS攻击323
12.2.2XSS攻击有效载荷324
12.2.3XSS攻击的传送机制327
12.3查找并利用XSS漏洞329
12.3.1查找并利用反射型XSS漏洞331
12.3.2查找并利用保存型XSS漏洞352
12.3.3查找并利用基于DOM的XSS漏洞357
12.4防止XSS攻击360
12.4.1防止反射型与保存型XSS漏洞360
12.4.2防止基于DOM的XSS漏洞364
12.5小结365
12.6问题365
第13章攻击用户:其他技巧366
13.1诱使用户执行操作366
13.1.1请求伪造366
13.1.2UI伪装374
13.2跨域捕获数据377
13.2.1通过注入HTML捕获数据377
13.2.2通过注入CSS捕获数据378
13.2.3JavaScript劫持380
13.3同源策略深入讨论384
13.3.1同源策略与浏览器扩展384
13.3.2同源策略与HTML5386
13.3.3通过服务应用程序跨域388
13.4其他客户端注入攻击389
13.4.1HTTP消息头注入389
13.4.2cookie注入393
13.4.3开放式重定向漏洞396
13.4.4客户端SQL注入402
13.4.5客户端HTTP参数污染402
13.5本地隐私攻击403
13.5.1持久性cookie404
13.5.2缓存Web内容404
13.5.3浏览历史记录405
13.5.4自动完成406
13.5.5Flash本地共享对象406
13.5.6Silverlight独立存储406
13.5.7Internet Explorer userData407
13.5.8HTML5本地存储机制407
13.5.9防止本地隐私攻击407
13.6攻击ActiveX控件408
13.6.1查找ActiveX漏洞409
13.6.2防止ActiveX漏洞410
13.7攻击浏览器411
13.7.1记录键击411
13.7.2窃取浏览器历史记录与搜索查询412
13.7.3枚举当前使用的应用程序412
13.7.4端口扫描412
13.7.5攻击其他网络主机413
13.7.6利用非HTTP服务413
13.7.7利用浏览器漏洞414
13.7.8DNS重新绑定414
13.7.9浏览器利用框架415
13.7.10中间人攻击416
13.8小结418
13.9问题418
第14章定制攻击自动化419
14.1应用定制自动化攻击419
14.2枚举有效的标识符420
14.2.1基本步骤420
14.2.2探测"触点"421
14.2.3编写攻击脚本422
14.2.4JAttack423
14.3获取有用的数据428
14.4常见漏洞模糊测试431
14.5整合全部功能:Burp Intruder434
14.6实施自动化的限制442
14.6.1会话处理机制443
14.6.2CAPTCHA控件448
14.7小结451
14.8问题451
第15章利用信息泄露453
15.1利用错误消息453
15.1.1错误消息脚本453
15.1.2栈追踪454
15.1.3详尽的调试消息455
15.1.4服务器与数据库消息456
15.1.5使用公共信息458
15.1.6制造详尽的错误消息459
15.2收集公布的信息460
15.3使用推论461
15.4防止信息泄露462
15.4.1使用常规错误消息462
15.4.2保护敏感信息462
15.4.3尽量减少客户端信息泄露463
15.5小结463
15.6问题463
第16章攻击本地编译型应用程序466
16.1缓冲区溢出漏洞467
16.1.1栈溢出467
16.1.2堆溢出467
16.1.3"一位偏移"漏洞468
16.1.4查找缓冲区溢出漏洞470
16.2整数漏洞472
16.2.1整数溢出472
16.2.2符号错误472
16.2.3查找整数漏洞473
16.3格式化字符串漏洞474
16.4小结475
16.5问题475
第17章攻击应用程序架构477
17.1分层架构477
17.1.1攻击分层架构478
17.1.2保障分层架构的安全482
17.2共享主机与应用程序服务提供商483
17.2.1虚拟主机484
17.2.2共享的应用程序服务484
17.2.3攻击共享环境485
17.2.4保障共享环境的安全490
17.3小结491
17.4问题491
第18章攻击Web服务器493
18.1Web服务器配置缺陷493
18.1.1默认证书493
18.1.2默认内容494
18.1.3目录列表499
18.1.4WebDAV方法500
18.1.5Web服务器作为服务器503
18.1.6虚拟主机配置缺陷504
18.1.7保障Web服务器配置的安全504
18.2易受攻击的服务器软件505
18.2.1应用程序框架缺陷505
18.2.2内存管理漏洞507
18.2.3编码与规范化漏洞508
18.2.4查找Web服务器漏洞512
18.2.5保障Web服务器软件的安全513
18.3Web应用程序防火墙514
18.4小结515
18.5问题516
第19章查找源代码中的漏洞517
19.1代码审查方法517
19.1.1 "黑盒"测试与"白盒"测试517
19.1.2代码审查方法518
19.2常见漏洞签名519
19.2.1跨站点脚本519
19.2.2SQL注入520
19.2.3路径遍历520
19.2.4任意重定向521
19.2.5OS命令注入522
19.2.6后门密码522
19.2.7本地代码漏洞522
19.2.8源代码注释524
19.3Java平台524
19.3.1确定用户提交的数据524
19.3.2会话交互525
19.3.3潜在危险的API526
19.3.4配置Java环境528
19.4ASP.NET529
19.4.1确定用户提交的数据529
19.4.2会话交互530
19.4.3潜在危险的API531
19.4.4配置ASP.NET环境533
19.5PHP534
19.5.1确定用户提交的数据534
19.5.2会话交互536
19.5.3潜在危险的API536
19.5.4配置PHP环境540
19.6Perl542
19.6.1确定用户提交的数据542
19.6.2会话交互543
19.6.3潜在危险的API543
19.6.4配置Perl环境544
19.7JavaScript545
19.8数据库代码组件
第1章 Web应用程序安全与风险
web应用程序安全无疑是当务之急,也是值得关注的话题。对相关各方而言,这一问题都至关重要。这里的相关各方包括因特网业务收入日益增长的公司、 Web应用程序托付敏感信息的用户,以及通过窃取支付信息或入侵银行账户偷窃巨额资金的犯罪分子。的信誉也非常重要,没人愿意与不安全的web站点进行交易,也没有组织愿意披露有关其安全方面的漏洞或违规行为的详细情况。因此,获取当前web应用程序安全状况的信息不可小视。
本章简要介绍web应用程序的发展历程及它们提供的诸多优点,并且列举我们亲身体验过的在目前Web应用程序中存在的漏洞,这些漏洞表明绝大多数应用程序还远远不够安全。本章还将描述Web应用程序面临的核心安全问题(即用户可提交任意输入的问题),以及造成安全问题的各种因素。讨论Web应用程序安全方面的近期发展趋势,并预测其未来的发展方向。
1.1 Web应用程序的发展历程
在因特网发展的早期阶段,万维网(world wideweb)仅由w曲站点构成,这些站点基本上是包含静态文档的信息库。随后人们发明了Web浏览器,通过它来检索和显示那些文档,如图1-1所示。这种相关信息流仅由服务器向浏览器单向传送。多数站点并不验证用户的合法性,因为根本没有必要这样做;所有用户同等对待,提供同样的信息。创建一个w曲站点所带来的安全威胁主要与web服务器软件的(诸多)漏洞有关。攻击者入侵web站点并不能获取任何敏感信息,因为服务器上保存的信息可以公开查看。所以攻击者往往会修改服务器上的文件,以歪曲Web站点的内容.或者利用服务器的存储容量和带宽传播"非法软件"。
如今的万维网与早期的万维网已经不同,Web上的大多数站点实际上是应用程序(见图1.2)。它们功能强大,在服务器和浏览器之间进行双向信息传送。它们支持注册与登录、金融交易、搜索以及用户创作的内容。用户获取的内容以动态形式生成,并且往往能够满足每个用户的特殊需求。它们处理的许多信息属于私密和高度敏感的信息。因此,安全问题至关重要:如果人们认为Web应用程序会将他们的信息泄露给未授权的访问者,他们就会拒绝使用这个web应用程序。
……
"关于黑客攻防技术,没有一本书能比这本书讲解得更为透彻和!" ——Jason Haddix,惠普公司渗透测试总监 "如果你对Web应用程序安全感兴趣,我强烈推荐本书,它实为Web安全人士必读之作。" ——Robert Wesley McGrew,McGrew安全公司研究人员 "第1版本来就是Web安全领域的扛鼎之作,第2版可谓经典之上的完善,值得拥有!" ——Daniel Miessler,安全顾问
看起来高大上,额,对于我这个初学者来说,看不懂,希望我以后应该能看懂,上帝保佑,给五星了!
书非常厚重,大体翻看了一下,还没有看完,感觉非常不错。以前也买过好几本关于网络安全方面的书,这本应该是最好的一本。非常满意,推荐购买!
确实很专业,建议有一定基础的人看此本书。如果能看懂绝对受益匪浅。
这本书让我有种想当黑客的感觉,嘿嘿开玩笑的不过内容挺好的吧大概
web安全的神作。安全入门必须深读的一本书。看一遍远远不够。
内容写的有点像教科书,整体还比较满意,包装简陋,就一个塑料袋。
这本稍微看一些,以后有时间了在慢慢消化,感觉对web这方面的攻防技术讲解得比较透彻。
内容没有细看,但是整体架构很好,介绍的很详细
满分。很喜欢,是正品。一直都在当当买书 会继续支持下去
别买!翻译的就是个P,啥破玩意儿!真想砸他脸上
书的质量不错,正如文中所说,有些技术现在已经过时了,但是这些技术的思想在一段时期内是不会过时的。
这个貌似有点儿深,我想要最简单的黑客,其实我只是好奇而已
工具介绍与理论相结合,同时贯穿了整个渗透测试的流程和思路。
还可以,挺详细,暂时没发现抓包问题,有点可惜,我再去发现下。
就是觉得这个本的技术有点旧了,随着IT行业的快速发展有些技术还是说的以前的;但是有点可以肯定,这些技术依然可以用!还是很不错的一本书;
当下web应用安全攻防的书不少,但很多是东拼西凑大篇幅讲怎么用这个那个工具或脚本,而这本书能从原理,方法,工具,攻击&防御多个维度全面讲解,且以渗透测试的角度来看应用程序的安全,全面而有深度,严重推荐啊!!相比之下, 还看过另一本:阿里那位吴先生的白帽子讲web安全,则逊色很多,大部分内容是泛泛而谈,对实际的渗透或攻击或防御缺少指导意义.
这本书非常不错,不管从理论还是实践上都值得一读,有点类似开发界的《代码大全2》,不断品尝,不断吸收新的东西,国外大作非常精典,强烈推荐所有从事网络安全的人士阅读。
速度快,真快。同时买的另一家书店的还tm在北京,可以吃屎吧。
与其说是实战篇,不如说是理论篇,主要介绍了一些web攻防的概念。 缺少详细的实战讲解。
不光书的质量如何。快递满分非常感谢,快递大哥把快递送到我小区门口真的非常感谢。我记得那个保安一般不让人进入的,辛苦了快递大哥蒋耀诗先生。
孩子感兴趣,给他买的。看了一部分,觉得当“黑客”好难。哈哈!
从实际应用开始讲解,而且介绍得很全面,几乎涵盖了好多经典web渗透的案例。可以快递送货包装不太好,压倒一条很大的痕,但不影响使用。
感觉非常好的一本书,涵盖了渗透测试,以及安全测试相关知识
与图片展示的相符,里面的内容正在研读,有待看完才有结论,从前面的2章内容来看,还是讲网站安全的必要性,哪些地方容易被入侵。还没涉及到攻防实际内容,书籍质量不错,纸张与印刷都很好。
还没细看,如书名所言,是一部攻防技术宝典Web实战篇。
还可以,技术不是很落后,黑客攻防:Web安全实战详解。。。。。。