店铺推荐
【推荐语】
    安全技术宝典全新升级

    深入剖析,实战演练,使你如饮醍醐
【作者】
   Dafydd Stuttard,世界知名安全顾问、作家、软件开发人士。牛津大学博士,MDSec公司联合创始人,尤其擅长Web应用程序和编译软件的渗透测试。Dafydd以网名PortSwigger蜚声安全界,是众所周知的Web应用程序集成攻击平台Burp Suite的。    Marcus Pinto,渗透测试专家,剑桥大学硕士,MDSec公司联合创始人。Marcus为全球金融、政府、电信、博彩、零售等行业组织和机构提供Web应用程序渗透测试和安全防御的咨询与培训。
【内容】
本书是探索和研究Web应用程序安全漏洞的实践指南。作者利用大量的实际案例和示例代码,详细介绍了各类Web应用程序的弱点,并深入阐述了如何针对Web应用程序进行具体的渗透测试。本书从介绍当前Web应用程序安全概况开始,重点讨论渗透测试时使用的详细步骤和技巧,总结书中涵盖的主题。每章后还附有习题,便于读者巩固所学内容。
第2版新增了Web应用程序安全领域近年来的发展变化新情况,并以尝试访问的链接形式提供了几百个互动式“漏洞实验室”,便于读者迅速掌握各种攻防知识与技能。
本书适合各层次计算机安全人士和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.10HTTP代理35
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解析ExtremeInternetShopping应用程序80
4.3小结81
4.4问题82
第5章避开客户端控件83
5.1通过客户端传送数据83
5.1.1隐藏表单字段84
5.1.2HTTPcookie86
5.1.3URL参数86
5.1.4Referer消息头86
5.1.5模糊数据88
5.1.6ASP.NETViewState89
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.7InternetExploreruserData407
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整合全部功能:BurpIntruder434
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数据库代码组件546
19.8.1SQL注入546
19.8.2调用危险的函数547
19.9代码浏览工具547
19.10小结548
19.11问题548
第20章Web应用程序黑客工具包550
20.1Web浏览器550
20.1.1InternetExplorer550
20.1.2Firefox551
20.1.3Chrome552
20.2集成测试套件552
20.2.1工作原理553
20.2.2测试工作流程566
20.2.3拦截代理服务器替代工具568
20.3独立漏洞扫描器570
20.3.1扫描器探测到的漏洞570
20.3.2扫描器的内在571
20.3.3扫描器面临的技术挑战572
20.3.4当前产品574
20.3.5使用漏洞扫描器576
20.4其他工具577
20.4.1Wikto/Nikto577
20.4.2Firebug577
20.4.3Hydra578
20.4.4定制脚本578
20.5小结581
第21章Web应用程序渗透测试方法论582
21.1解析应用程序内容584
21.1.1搜索可见的内容584
21.1.2浏览公共资源585
21.1.3发现隐藏的内容586
21.1.4查找默认的内容586
21.1.5枚举标识符指定的功能586
21.1.6调试参数587
21.2分析应用程序587
21.2.1确定功能587
21.2.2确定数据进入点587
21.2.3确定所使用的技术588
21.2.4解析受攻击面588
21.3测试客户端控件588
21.3.1通过客户端传送数据589
21.3.2客户端输入控件589
21.3.3测试浏览器扩展组件590
21.4测试验证机制592
21.4.1了解验证机制592
21.4.2测试密码强度593
21.4.3测试用户名枚举593
21.4.4测试密码猜测的适应性593
21.4.5测试账户恢复功能594
21.4.6测试“记住我”功能594
21.4.7测试伪装功能594
21.4.8测试用户名性595
21.4.9测试证书的可预测性595
21.4.10检测不安全的证书传输595
21.4.11检测不安全的证书分配596
21.4.12测试不安全的存储596
21.4.13测试逻辑缺陷596
21.4.14利用漏洞获取未授权访问597
21.5测试会话管理机制598
21.5.1了解会话管理机制598
21.5.2测试令牌的含义599
21.5.3测试令牌的可预测性599
21.5.4检查不安全的令牌传输600
21.5.5检查在日志中泄露的令牌600
21.5.6测试令牌会话映射601
21.5.7测试会话终止601
21.5.8测试会话固定602
21.5.9检查CSRF602
21.5.10检查cookie范围602
21.6测试访问控件603
21.6.1了解访问控制要求603
21.6.2使用多个账户测试604
21.6.3使用有限的权限测试604
21.6.4测试不安全的访问控制方法605
21.7测试基于输入的漏洞605
21.7.1模糊测试所有请求参数605
21.7.2测试SQL注入607
21.7.3测试XSS和其他响应注入609
21.7.4测试OS命令注入611
21.7.5测试路径遍历612
21.7.6测试脚本注入613
21.7.7测试文件包含613
21.8测试特殊功能方面的输入漏洞613
21.8.1测试SMTP注入614
21.8.2测试本地代码漏洞614
21.8.3测试SOAP注入616
21.8.4测试LDAP注入616
21.8.5测试XPath注入617
21.8.6测试后端请求注入617
21.8.7测试XXE注入617
21.9测试逻辑缺陷618
21.9.1确定关键的受攻击面618
21.9.2测试多阶段过程618
21.9.3测试不完整的输入619
21.9.4测试信任边界619
21.9.5测试交易逻辑619
21.10测试共享主机漏洞620
21.10.1测试共享基础架构之间的隔离620
21.10.2测试使用ASP主机的应用程序之间的隔离620
21.11测试Web服务器漏洞621
21.11.1测试默认证书621
21.11.2测试默认内容621
21.11.3测试危险的HTTP方法622
21.11.4测试代理功能622
21.11.5测试虚拟主机配置不当622
21.11.6测试Web服务器软件漏洞622
21.11.7测试Web应用程序防火墙623
21.12其他检查623
21.12.1测试基于DOM的攻击624
21.12.2测试本地隐私漏洞624
21.12.3测试脆弱的SSL加密算法625
21.12.4检查同源策略配置625
21.13检查信息泄露625
【媒体评论】
    ★关于黑客攻防技术,没有一本书能比这本书讲解得更为透彻和全面!     ——Jason Haddix,惠普公司渗透测试总监     ★如果你对Web应用程序安全感兴趣,我强烈推荐本书,它实为Web安全人士推荐阅读之作。     ——Robert Wesley McGrew,McGrew安全公司研究人员     ★版本来是Web安全领域的扛鼎之作,版可谓经典之上的完善,值得拥有!     ——Daniel Miessler,安全顾问
返回顶部