logo
  人民邮电出版社  
     
     
   
  首页 | 关于我们 | 新闻 | 分类检索 | 丛书检索 | 高级检索 | 招聘 | 读者交流卡 | 用户注册 | 用户登录
高级查询
分类查询
丛书查询
浏览图书
查看图书详情
单击可查看完整封面
书名: 黑客攻防技术宝典:Web实战篇
评论星级:
书号: 978-7-115-21077-7
原书名: The Web Application Hacker's Handbook: Discovering and Exploiting Security Floaws
原出版社: Wiley Publishing
丛书名: 图灵程序设计丛书
分类: 计算机 >> 信息安全 >> 网络安全
作者: Dafydd Stuttard, Marcus Pinto
译者: 石华耀
出版日期: 2009-08-01
语种: 简体中文
开本: 16开
页数: 495
定价: 69.00 元人民币
 
    本书是发现并利用Web应用程序安全漏洞的实用指南。这里的“Web 应用程序”是指通过使用Web浏览器与Web服务器进行通信,从而加以访问的应用程序。本书不仅分析了大量各种各样的技术,如数据库、文件系统与Web服务器,而且讨论了它们在Web应用程序中的使用情况。
    如果你想了解如何运行端口扫描、攻击防火墙或以其他方式对服务器进行渗透测试,我们建议你阅读其他书籍。但是,如果你希望了解渗透测试员如何攻击Web应用程序、窃取敏感数据、执行未授权操作,那么本书可以满足你的需要。本书将就以上主题展开全面而详实的讨论。
本书概述
    本书极其注重实用性。虽然我们提供了足够的背景信息与理论知识,以帮助读者了解Web应用程序中包含的漏洞;但是,渗透测试员在攻击Web应用程序时所需要实施的步骤及采用的技巧,才是我们讨论的重点所在。本书详细阐述了探查每一种漏洞所需采用的特定步骤,以及如何利用它执行未授权操作。我们还根据多年的工作经验,列出大量实例,说明在当今Web应用程序中存在的各种安全漏洞。
    另一方面,安全意识就像一把双刃剑。开发者能够从了解攻击者所使用的方法中受益;相反,黑客也可以通过了解应用程序的防御机制而窥探它的受攻击面。除介绍安全漏洞与攻击技巧外,我们还将详细介绍应用程序为抵御攻击者而采用的应对措施。同时,Web应用程序渗透测试员还可以从本书中获得大量实用的建议,以帮助应用程序所有者强化他们的应用程序。
本书目标读者
    本书的目标读者是Web应用程序渗透测试员,以及负责开发和管理Web应用程序的人,因为了解你的敌人有助于对他们进行有效防御。
    我们希望读者熟悉核心安全概念,如登录和访问控制;并希望读者掌握基本的核心Web技术,如浏览器和HTTP。通过阅读本书提供的解释说明或其他参考资料,可以迅速弥补当前读者在这些领域的知识欠缺。
    在介绍各种安全漏洞的过程中,我们将提供代码片断,说明应用程序为何易受攻击。这些示例都非常简单,不需要事先了解编写代码的语言就能够理解它们;但是,已经掌握阅读或编写代码的基础知识会更有用。
本书结构
    总体而言,本书根据不同主题之间的依赖关系将内容组织在一起。如果你还不了解黑客是如何攻击Web应用程序的,应该从头至尾读完本书,以了解在后续有关章节中需要用到的背景信息和技巧。如果你在这方面已经拥有一定的经验,可以直接跳到特别感兴趣的任何章节或部分。必要时,我们将提供其他章节的交叉参考,以帮助你弥补理解上的欠缺。
    本书前3章介绍一些背景信息,描述当前Web应用程序的安全状况,说明它将来的发展趋势。然后将介绍影响Web应用程序的核心安全问题,以及应用程序为解决这些问题所采取的防御机制。同时还将介绍当前Web应用程序所使用的关键技术。
    本书的主要部分重点讨论核心主题——渗透测试员在攻击Web应用程序时使用的技巧。我们根据实施全面攻击所需要完成的关键任务组织材料,这些任务依次为:解析应用程序的功能,检查和攻击它的核心防御机制,探查特殊类型的安全漏洞。
    最后3章对本书涵盖的各种主题进行简要总结:描述如何在应用程序源代码中查找漏洞;回顾能够帮助渗透测试员攻击Web应用程序的工具;详细介绍一种攻击方法,说明渗透测试员如何对一个目标应用程序实施全面而深入的攻击。
    第1章描述当前在因特网上运行的Web应用程序的安全状况。尽管软件商常常保证Web应用程序是安全的,但绝大多数的应用程序并不真正安全;只要掌握一些技巧,就能够攻破它们。Web应用程序中的漏洞源于一个核心问题:用户可提交任意输入。这一章将分析造成当今应用程序安全状况不佳的关键因素,并说明Web应用程序中存在的缺陷如何使得组织的全面技术基础架构非常易于受到攻击。
    第2章描述Web应用程序为解决“所有用户输入都不可信”这个基本问题而采用的核心安全机制。应用程序通过这些机制管理用户访问、控制用户输入、抵御攻击者。这些机制还为管理员提供各种功能,帮助他们管理和监控应用程序自身。应用程序的核心安全机制还是它的主要受攻击面,在对它们实施有效攻击前,渗透测试员必须了解这些机制的工作原理。
    第3章简要介绍渗透测试员在攻击Web应用程序时可能遇到的关键技术,包括相关HTTP协议、客户与服务器端常用的技术以及各种数据编码方案。已经熟悉主要Web技术的读者可以跳过本章。
    第4章描述渗透测试员在攻击一个新的应用程序时所需采取的第一步,即收集与应用程序有关的尽可能多的信息,以确定它的受攻击面,制定攻击计划。渗透测试员需要搜索并探查应用程序,枚举它的全部内容与功能,确定所有用户输入进入点并查明它所使用的技术。
    第5章描述了存在漏洞的第一个区域。如果一个应用程序依靠在客户端实现的控件来保护它的安全,就可能造成这种漏洞。这种保护应用程序的方法往往存在缺陷,因为攻击者可轻易避开任何客户端控件。应用程序易于受到攻击的原因有两个:(1)通过客户传送数据,认为这些数据不会被修改;(2)依赖客户端对用户输入进行检查。这一章将介绍一系列有用的技术,包括HTML、HTTP与JavaScript所采用的轻量级控件,以及使用Java applet、ActiveX控件和Shockwave Flash对象的重量级控件。
    第6~8章将主要介绍Web应用程序中最重要的防御机制——负责控制用户访问的机制。第6章描述应用程序确认用户身份的各种功能,包括主登录功能和更加外围的与验证有关的功能,如用户注册、密码修改和账户恢复功能。验证机制在设计和执行方面都包含大量漏洞,攻击者能够利用它们获得未授权访问。这些漏洞包括明显的缺陷,如保密性不强的密码和易于受到蛮力攻击,以及验证逻辑中存在的更微妙的问题。这一章还将详细分析许多安全性至关重要的应用程序所采用的多阶段登录机制,并描述这些机制中频繁出现的新型漏洞。
    第7章介绍会话管理机制。大多数应用程序通过有状态会话这个概念补充无状态的HTTP协议,帮助它们在不同的请求中确定每个用户的身份。当Web应用程序受攻击时,这个机制是一个主要的攻击目标;因为如果能够攻破它,就能够有效避开登录机制,伪装成其他用户,而不必知道他们的证书。这一章还将分析生成和传送会话令牌过程中存在的各种常见漏洞,并描述发现和利用这些漏洞所需采取的步骤。
第8章说明应用程序如何实施访问控制。应用程序主要依靠验证与会话管理机制来完成这项任务。本章将介绍各种破坏访问控制的技巧,以及探查和利用这些弱点的方法。
    第9章介绍大量相关漏洞。如果应用程序以不安全的方式在解释型代码中插入用户输入,就会造成这种漏洞。我们首先说明SQL注入漏洞,讨论各种攻击方法,从最明显、最简单的方法到一系列高级利用技巧(如带外通道、推断和时间延迟)。对于每一种漏洞和攻击技巧,我们将描述3种常用数据库(MS-SQL、Oracle和MySQL)之间的相关差异,然后介绍其他几种注入漏洞,包括操作系统命令注入、Web 脚本语言注入、注入SOAP/XPath/SMTP/LDAP协议。
    第10章介绍一种简单而重要的漏洞。如果应用程序以不安全的方式将用户输入提交给文件系统 API,就会造成这种漏洞,使得攻击者能够获取或修改Web服务器上的任意文件。我们将描述各种技巧,说明应用程序为防止路径遍历攻击而实施的防御机制。
    第11章将介绍应用程序受攻击面的一个重要的、常被人们忽略的区域——实现其功能的内部逻辑。应用程序逻辑中的漏洞各不相同,它们比 SQL 注入与跨站点脚本之类的常见漏洞更难以辨别。为此,我们将列举一系列实例,它们中存在的逻辑缺陷使得应用程序易于受到攻击,借此说明应用程序设计者与开发者所做出的各种错误假设。根据这些各不相同的缺陷,我们将进行一系列特殊测试,以确定许多常常难以探测的逻辑缺陷。
    第12章将介绍一种严重的漏洞。如果Web应用程序中存在的缺陷使得应用程序的恶意用户能够攻击其他用户,并以各种方式危及他们的安全,就会造成这种漏洞。跨站点脚本漏洞是其中最重要的漏洞,它非常流行,影响着因特网上绝大多数的Web应用程序。我们将详细介绍各种不同类型的XSS漏洞,并说明如何探查并利用即使是最难以辨别的漏洞。然后,我们将分析另外几种针对其他用户的攻击方法,包括重定向攻击、HTTP 消息头注入、框架注入、跨站点请求伪造、会话固定、利用ActiveX控件中的缺陷以及本地隐私攻击。
    第13章并不介绍任何新的漏洞,而是描述一种渗透测试员攻击Web应用程序时需要掌握的技巧。由于每种应用程序都各不相同,大多数攻击都经过某种方式的定制(或自定义),以针对应用程序的特殊行为,以及发现对攻击有利的操纵方法。这些攻击还要求提出大量相似的请求,并监控应用程序的响应。手动执行这些请求非常费力,而且容易出错。要真正熟悉Web应用程序,必须尽可能自动实施攻击步骤,使定制攻击更加简单、快捷而高效。本章将详细描述一种正被证实的方法,以完成这项任务。
    第14章分析应用程序如何在遭受攻击时泄露信息。当实施本书描述的其他各种攻击时,渗透测试员应该始终监控应用程序,以确定其他可供利用的信息泄露来源。我们将介绍如何分析应用程序的反常行为与错误消息,以深入了解应用程序的内部工作机制,并细化攻击。我们还将介绍如何利用存在缺陷的错误处理机制,从应用程序中获取敏感信息。
    第15章介绍在以C和C++等代码语言编写的应用程序中存在的一些重要漏洞。这些漏洞包括缓冲区溢出、整数漏洞和格式化字符串漏洞。这个主题涉及的内容非常广泛,我们将重点讨论如何在Web应用程序中探查这些漏洞,并分析一些实例,了解造成这些漏洞的原因,以及如何对它们加以利用。
    第16章介绍一个常被忽略的Web应用程序安全领域。许多应用程序采用一种分层架构,无法正确隔离这些层面可能会导致应用程序易于受到攻击,使得攻击者能够利用在其中一个组件中发现的漏洞迅速攻破整个应用程序。共享主机环境带来另外一些严重的威胁;有时,攻击者可以利用一个应用程序中存在的缺陷或恶意代码攻破整个环境及其中运行的其他应用程序。
    第17章描述各种攻击技巧,说明如何通过攻击Web服务器进而攻击其中运行的Web应用程序。Web 服务器中存在的漏洞主要包括服务器配置方面的漏洞以及Web服务器软件中的安全漏洞。这个主题属于本书的讨论范围,因为严格来讲,Web 服务器是技术栈的另一个组件。但是,大多数Web服务器都与在它们之中运行的Web应用程序关系密切。因此,本书介绍针对Web服务器的攻击,因为攻击者常常可以利用它们直接攻破一个应用程序,而不是首先间接攻破基础主机,然后再攻击Web应用程序。
    第18章描述另外一种查找安全漏洞的方法。这种方法与本书其他章节讨论的方法截然不同。许多时候,我们都可以对应用程序的源代码进行审查,并且不必得到应用程序所有者的协助。通常,审查应用程序的源代码可以迅速确定一些漏洞,但在运行的应用程序中探查这些漏洞可能极其困难,或者需要耗费许多时间。我们将介绍一种代码审查方法,并简要说明如何对以各种语言编写的代码进行审查,以帮助读者在编程经验不足的情况下进行有效的代码审查。
    第19章详细介绍本书描述的各种工具。我们将分析这些工具的优缺点,讨论一些全自动工具能否有效地发现Web应用程序中存在的漏洞,并提供一些提示和建议,说明如何充分利用工具包。
    第20章综合介绍本书描述的所有攻击步骤与技巧。我们将根据渗透测试员在实施攻击时所需完成的任务之间的逻辑依赖关系来组织这些步骤与技巧,并对它们进行排序。如果你已经阅读并理解书中描述的各种漏洞和攻击技巧,就可以把这个方法当作一个完整的清单和工作计划,对Web应用程序实施渗透测试。
需要的工具
    本书着重讨论渗透测试员在攻击Web应用程序时所采用的实用技巧。阅读本书后,你将了解每项攻击任务的细节、它们涉及的技术以及它们为什么有助于探查和利用各种漏洞。下载某个工具,使用它攻击一个目标应用程序,并根据它的输出结果了解应用程序的安全状况,这些内容并不是本书讨论的重点。
    也就是说,当实施我们描述的步骤与技巧时,你会发现一些有用、有时甚至是必不可少的工具。所有这些工具都可以在因特网上找到,建议你下载并试用本书介绍的每一个工具。
同步网站内容
    本书的同步网站(www.wiley.com/go/webhacker)提供一些掌握各种攻击技巧所需要的有用资源,该网站主要包括以下内容:
    □本书列出的一些脚本的源代码;
    □本书讨论的所有工具和其他资源的链接;
    □攻击一个常见应用程序的步骤列表;
    □每章结束部分提出的问题的答案;
    □包含本书描述的许多漏洞的一个攻击挑战。
其他说明
    Web应用程序安全是一个有趣而流行的主题。对我们而言,撰写本书是一种享受。我们希望,在学习本书描述的各种攻击技巧和了解如何防御这些攻击手段的过程中,你能够找到乐趣。
    此外,我们在此提出严正警告。在许多国家,未经所有者许可而攻击他们的计算机系统的做法属非法行为。如果未经他人同意,执行我们描述的绝大多数技巧可能会触犯法律。
    本书作者为专业的渗透测试员,他们代表客户对Web应用程序实施攻击,以帮助强化应用程序的安全。近年来,许多安全专业人士与其他人由于未经许可而尝试或主动攻击计算机系统,从而犯罪,其职业生涯也因此结束。我们强烈要求你仅在法律许可的范围内使用本书提供的信息。
关于我们广告服务联系我们招聘信息法律公告用户反馈会员注册教师登记网站地图
Copyright © 2005 北京图灵文化发展有限公司 All Rights Reserved
地址:北京市朝阳区北苑路13号院1号楼领地OFFICE C座603室 100107
电话:010-510951815109518251095183 传真:010-52086950 E-mail:contact@turingbook.com
京ICP备06005389号