黑客攻防技术宝典:Web 实战篇(全面分析Web应用程序安全漏洞)(china-pub首发)
基本信息
- 作者: (英)Dafydd Stuttard Marcus Pinto [作译者介绍]
- 译者: 石华耀
- 丛书名: 图灵程序设计丛书 网络安全
- 出版社:人民邮电出版社
- ISBN:9787115210777
- 上架时间:2009-8-8
- 出版日期:2009 年8月
- 开本:16开
- 页码:495
- 版次:1-1
- 所属分类:
计算机 > 安全 > 网络安全/防火墙/黑客
编辑推荐
跟安全技术大师学习黑客攻防技术.
全面分析Web应用程序安全漏洞..
大量实例和代码片段...
推荐阅读
内容简介回到顶部↑
作译者回到顶部↑
本书提供作译者介绍
Dafydd Stuttard 世界知名的安全技术专家。著名Web应用攻击测试工具Burp Suite的开发者。以网名PortSwigger蜚声安全界。牛津大学博士,现任Next Generation Security Software公司资深安全顾问,主要负责Web应用程序安全。.
Marcus Pinto资深渗透测试专家,Next Generation Security Software公司资深安全顾问,主要负责数据库开发团队。拥有剑桥大学硕士学位。...
.. << 查看详细
Marcus Pinto资深渗透测试专家,Next Generation Security Software公司资深安全顾问,主要负责数据库开发团队。拥有剑桥大学硕士学位。...
.. << 查看详细
目录回到顶部↑
第1章 web应用程序安全与风险. 1
1.1 web应用程序的发展历程 1
1.1.1 web应用程序的常见功能 2
1.1.2 web应用程序的优点 3
1.2 web应用程序安全 3
1.2.1 “本站点是安全的” 3
1.2.2 核心安全问题:用户可提交任意输入 5
1.2.3 关键问题因素 6
1.2.4 新的安全边界 7
1.2.5 web应用程序安全的未来 8
1.3 小结 8
第2章 核心防御机制 9
2.1 处理用户访问 9
2.1.1 身份验证 10
2.1.2 会话管理 10
2.1.3 访问控制 11
2.2 处理用户输入 12
2.2.1 输入的多样性 12
2.2.2 输入处理方法 13
2.2.3 边界确认 14
1.1 web应用程序的发展历程 1
1.1.1 web应用程序的常见功能 2
1.1.2 web应用程序的优点 3
1.2 web应用程序安全 3
1.2.1 “本站点是安全的” 3
1.2.2 核心安全问题:用户可提交任意输入 5
1.2.3 关键问题因素 6
1.2.4 新的安全边界 7
1.2.5 web应用程序安全的未来 8
1.3 小结 8
第2章 核心防御机制 9
2.1 处理用户访问 9
2.1.1 身份验证 10
2.1.2 会话管理 10
2.1.3 访问控制 11
2.2 处理用户输入 12
2.2.1 输入的多样性 12
2.2.2 输入处理方法 13
2.2.3 边界确认 14
译者序回到顶部↑
随着网络技术的快速发展以及网络带宽的不断扩张,Web应用程序几乎无处不在,渗透到社会的经济、文化、娱乐等各个方面。但同时,承载着丰富功能与用途的Web应用程序也成为恶意用户与黑客等攻击者的主要攻击目标。因此,如何确保Web应用程序的安全已成为政府、企业,特别是银行等金融机构所面临的主要挑战。.
古语云:知己知彼,百战不殆。只有充分了解攻击者所采用的攻击方法以及Web应用程序中存在的可供攻击者利用的各种漏洞,我们才能针对这些漏洞采取行之有效的防御方法。本书两位作者都是安全领域的专家,拥有丰富的渗透测试实践经验,因而本书具有极高的实用价值。书中主要介绍了渗透测试员在测试Web应用程序时所采用的步骤和技巧。同时,从防御的角度看,这些步骤与技巧也为确保Web应用程序的安全、加强防御措施指明了方向。..
本书内容全面,几乎涵盖了所有Web核心技术,如HTTP、客户与服务器端技术、数据编码等;涉及了Web应用程序的主要核心功能,如客户端控件、会话管理、访问控制、应用程序逻辑与体系架构、Web服务器等;详细分析了各种类型的漏洞,如代码注入、路径遍历、跨站点脚本、重定向攻击、跨站点请求伪造、会话劫持、会话固定、缓冲区溢出、整数漏洞、格式化漏洞等;还提供了一些作者作为专业渗透测试员开发的Burp Intruder、JAttack、Paros、WebScarab、Nikto、Hydra等工具。另外,为弥补读者在某些方面的知识欠缺,本书还提供了一些背景知识及相关链接。本着实用的原则,作者在分析漏洞、介绍渗透测试步骤与技术的同时,还提供了大量实例与代码片段;每节的“渗透测试步骤”部分还对前面讨论的内容进行了简要总结。此外,每章最后的“问题”可帮助读者回顾该章的重点知识。这些问题的答案可在本书的同步网站(www.wiley.com/go/webhacker)上找到。
感谢看雪论坛以及Ivan、Failwest等朋友给予的技术支持,感谢妻子对我工作的莫大支持,她的爱是我前进的动力。
由于译者水平有限,加之时间仓促,译文难免存在各种错误或不妥之处,还请大家指正。有关文字与技术方面的问题,欢迎致信shy1639@hotmail.com与译者交流,谢谢大家!...
古语云:知己知彼,百战不殆。只有充分了解攻击者所采用的攻击方法以及Web应用程序中存在的可供攻击者利用的各种漏洞,我们才能针对这些漏洞采取行之有效的防御方法。本书两位作者都是安全领域的专家,拥有丰富的渗透测试实践经验,因而本书具有极高的实用价值。书中主要介绍了渗透测试员在测试Web应用程序时所采用的步骤和技巧。同时,从防御的角度看,这些步骤与技巧也为确保Web应用程序的安全、加强防御措施指明了方向。..
本书内容全面,几乎涵盖了所有Web核心技术,如HTTP、客户与服务器端技术、数据编码等;涉及了Web应用程序的主要核心功能,如客户端控件、会话管理、访问控制、应用程序逻辑与体系架构、Web服务器等;详细分析了各种类型的漏洞,如代码注入、路径遍历、跨站点脚本、重定向攻击、跨站点请求伪造、会话劫持、会话固定、缓冲区溢出、整数漏洞、格式化漏洞等;还提供了一些作者作为专业渗透测试员开发的Burp Intruder、JAttack、Paros、WebScarab、Nikto、Hydra等工具。另外,为弥补读者在某些方面的知识欠缺,本书还提供了一些背景知识及相关链接。本着实用的原则,作者在分析漏洞、介绍渗透测试步骤与技术的同时,还提供了大量实例与代码片段;每节的“渗透测试步骤”部分还对前面讨论的内容进行了简要总结。此外,每章最后的“问题”可帮助读者回顾该章的重点知识。这些问题的答案可在本书的同步网站(www.wiley.com/go/webhacker)上找到。
感谢看雪论坛以及Ivan、Failwest等朋友给予的技术支持,感谢妻子对我工作的莫大支持,她的爱是我前进的动力。
由于译者水平有限,加之时间仓促,译文难免存在各种错误或不妥之处,还请大家指正。有关文字与技术方面的问题,欢迎致信shy1639@hotmail.com与译者交流,谢谢大家!...
前言回到顶部↑
本书是发现并利用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章描述应用程序确认用户身份的各种功能,包括主登录功能和更加外围的与验证有关的功能,如用户注册、密码修改和账户恢复功能。验证机制在设计和执行方面都包含大量漏洞,攻击者能够利用它们获得未授权访问。这些漏洞包括明显的缺陷,如保密性不强的密码和易于受到蛮力攻击,以及验证逻辑中存在的更微妙的问题。这一章还将详细分析许多安全性至关重要的应用程序所采用的多阶段登录机制,并描述这些机制中频繁出现的新型漏洞。
如果你想了解如何运行端口扫描、攻击防火墙或以其他方式对服务器进行渗透测试,我们建议你阅读其他书籍。但是,如果你希望了解渗透测试员如何攻击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章描述应用程序确认用户身份的各种功能,包括主登录功能和更加外围的与验证有关的功能,如用户注册、密码修改和账户恢复功能。验证机制在设计和执行方面都包含大量漏洞,攻击者能够利用它们获得未授权访问。这些漏洞包括明显的缺陷,如保密性不强的密码和易于受到蛮力攻击,以及验证逻辑中存在的更微妙的问题。这一章还将详细分析许多安全性至关重要的应用程序所采用的多阶段登录机制,并描述这些机制中频繁出现的新型漏洞。
媒体评论回到顶部↑
“想成为Web安全高手吗?读这本书吧,你一定不会失望!”.
——Amazon.com
“没有空洞的理论和概念,也没有深奥的行话,除了实战经验,还是实战经验……”...
——blackhat.com
——Amazon.com
“没有空洞的理论和概念,也没有深奥的行话,除了实战经验,还是实战经验……”...
——blackhat.com
评论交流
共有40人开贴评论 47人参与评论 27人参与打分 查看
评价等级:







发表于:2009-9-23 9:54:00
网络安全的重要性相信很多人都知道,但是知道归知道,现实情况是中国很多网站都存在严重的安全漏洞包括很多政府网站。笔者曾经接触到一位黑客,严格来说他并不能算是黑客,因为他只是会使用一些黑客工具利用一些已知的漏洞来攻击,而且他也不懂编程,但即便这样一个对编程一窍不通的人利用一些黑客工具可以轻易的攻陷很多网站。类似这种黑客可以说非常之多,更不用说那些有商业利益驱动的专业黑客了。
那么是什么原因导致中国的网络安全这么差呢?归纳起来有下面几个原因:
1. 网站本身缺乏安全意识,存在侥幸心理
2. 网站有安全意识但是不知道从何如何做
3. 开发网站的程序员本身就没有安全编码的技能
对于第一个原因,解决方法只能是舆论的宣传引导和自己吃亏之后就会意识到。而第二个原因,目前关于网络安全的书籍也出了不少,相关的安全软件也很多,但是坦白的说这都是治标不治本的方法。而第3个原因才是网络安全的根本原因,很多网站的开发人员对如何编写安全的代码一无所知,代码本身就具有很多漏洞,这样的网站是属于内部有缺陷,你再如何从外部加强,安装各种安全软件,一样会被攻陷。
彻底解决这个问题的方法就是让每个网站开发人员都能掌握基本的安全编码技能,但是目前市场上一些讲述安全的书籍要么是从网管层面讲解如何应对威胁,要么就是通用的代码编写方面讲述安全编码技能,没有针对性(如《编写安全的代码》一书),很多程序员会觉得离自己比较远。而专门针对网站开发这个特定领域的安全编码的书籍几乎没有。
《黑客攻防技术宝典:Web 实战篇》这本书的出版则填补了这个空白。这本书可以说近年来在安全领域写的最实用最权威的一本书了。之所以说其实用,是这本书完全围绕Web开发的每一个方面,从Http协议开始到一个网站开发过程中会涉及到的一些功能块,并对每个功能块中会出现的安全问题都进行了讲解,并且以代码的形式讲解,更直观,更容易理解,真正从实战中讲述知识。
这本书讲的非常细致,几乎涵盖了一个网站开发中可能遇到的所有漏洞,并且针对一些流行的Web开发工具(Asp.Net,PHP,JSP等)都做了讲述。仔细阅读本书和实践书中技术,可以让一个对网络安全一窍不通的菜鸟变为一个中级的安全专家,这并不是夸大之词,而是完全可以做到的。
此外,因为这本书是讲述Web开发中的安全问题的,因此也会涉及到对一些技术原理的剖析,比如Http协议的介绍,因此从这本书中不仅仅可以学到安全编程的技术,也可以通过这些内部原理的剖析可以让你对Web开发技术有更深刻的认识,而不是只停留在利用别人开发好的组件(如Asp.Net中的Web控件,JSP中的一些Tag及框架等)进行编程的层次。
最后一点我想说的就是,对于一个程序员来说,只有做到与众不同才可能让自己脱颖而出,而做到与众不同的关键就是掌握一些别人没有掌握的技术,并且这种技术的应用前景也要非常广。而Web开发的安全编码技术就是这样一种技术,当很多人在这方面都比较弱时你掌握了就意味着你比其他人在竞争中获胜的机会更大,而这本书就能给你带来这种与众不同。
因此,我在这里向各位诚挚的推荐这本书,希望每个从事网站开发的程序员都能够认真的阅读这本书并在自己负责的网站开发中应用这些技术。
| 我要写评论 |
| 查看所有评论交流(共40条) |








点击看大图





加载中...

