您的浏览历史

黑客大曝光:Web应用安全机密与解决方案(第2版)

 电子书Web试读版:试读本书 全部品种


精彩评论
市场价 : ¥65.00
普通会员 : ¥52.00
1-3星会员: ¥50.70
4-5星会员: ¥48.75(75折)

基本信息
【评  价】 (共 8 条) 参与评论
【原 书 名】 Hacking Exposed Web Applications, 2nd Ed.
【原出版社】 McGraw-Hill Osborne Media
【作  者】(美)Joel Scambray;Mike Shema;Caleb Sima [同作者作品] [作译者介绍]
【译  者】 王炜;文苗;罗代升[同译者作品]
【丛 书 名】 安全技术大系
【出 版 社】 电子工业出版社     【书 号】 9787121066696
【上架时间】 2008-7-28
【出版日期】 2008 年6月 【开 本】 16开 【页 码】 492     【版 次】2-1
【所属分类】 计算机 > 安全 > 网络安全
编辑推荐

本书帮你参透Web攻击背后的玄机,练就一双火眼金睛,为你的Web应用保驾护航!...



【内容简介】

在网络技术和电子商务飞速发展的今天,Web应用安全面临着前所未有的挑战。本书凝聚了作者们超过30年的Web安全从业经验,详细剖析了Web应用的安全漏洞,攻击手法和对抗措施,一步步的教授如何防御邪恶的攻击,并协助读者理解黑客的思考过程。
本书分为13章,书后带有附录和详细的英汉对照索引。本书是网络管理员、系统管理员的必备宝典,也是电子商务从业者、网络爱好者和企业管理者的参考书籍。

【作译者介绍】

作者: Joel Scambray
Joel Scambray拥有信息系统安全专家认证(CISSP),有15年的信息安全经验,包括:在微软和安永国际会计公司担任高级管理角色,与人创办Foundstone公司,担任“财富500强”企业的技术顾问,与人合著“黑客大曝光”(Hacking Exposed)系列畅销书。. Mike Shema是NT Objectives的首席战略官(CSO),曾在多个安全会议上进行过Web应用安全的演讲。他研究了大量的广泛的Web技术,并开发出应用安全课程的培训教材。他是《反黑客工具包》(Anti-Hacker Toolkit)一书的合著者.. << 查看详细

[同作者作品]
黑客大曝光:Web应用安全机密与解决方案(第2版)

作者: 罗代升
罗代升,博士,教授,博士生导师。1970年四川大学毕业,留校任教,主要研究方向包括信号与信息处理,通信与信息系统,计算机视觉,模式识别,智能系统及设计。.. << 查看详细

[同作者作品]
黑客大曝光:Web应用安全机密与解决方案(第2版)

作者: 王炜
王炜,1981年1月出生,2003年毕业于四川大学计算机通信专业,获学士学位。现为四川大学通信与信息系统专业博士研究生,主要研究方向为:网络与信息安全。 .. << 查看详细

[同作者作品]
黑客大曝光:Web应用安全机密与解决方案(第2版)

作者: Caleb Sima
Caleb Sima是Web应用安全产品公司SPI Dynamics的创办者之一和首席技术官,拥有超过12年的安全经验。他在Web安全方面的探索和专业知识对Web应用安全产业界确定产业发展的方向提供了极大的帮助。Caleb是Associated Press著名的Internet攻击方面的时事评论员和专家。他也是各种杂志和在线专栏的作者。Caleb是ISSA(信息系统安全协会)成员,OASIS(结构化信息标准促进组织)中应用漏洞描述语言(Application Vulnerability Description Language)标准的发起者之一,也是Web应用安全联盟(Web Applicati.. << 查看详细

[同作者作品]
黑客大曝光:Web应用安全机密与解决方案(第2版)

作者: 文苗
文苗,东南大学软件工程学士学位,爱好网络安全和软件开发,有多年Web程序开发和测试经验,曾负责和参与某大型Web商业软件的安全测试工作。.. << 查看详细

[同作者作品]
黑客大曝光:Web应用安全机密与解决方案(第2版)

本书提供作译者介绍
Joel Scambray拥有信息系统安全专家认证(CISSP),有15年的信息安全经验,包括:在微软和安永国际会计公司担任高级管理角色,与人创办Foundstone公司,担任“财富500强”企业的技术顾问,与人合著“黑客大曝光”(Hacking Exposed)系列畅销书。

  Mike Shema是NT Objectives的首席战略官(CSO),曾在多个安全会议上进行过Web应用安全的演讲。他研究了大量的广泛的Web技术,并开发出应用安全课程的培训教材。他是《反黑客工具包》(Anti-Hacker Toolkit)一书的合著者。
.. << 查看详细

【目录信息】

第1章 Web应用攻击的基础知识
 1.1 什么是Web应用攻击
  1.1.1 GUI Web攻击
  1.1.2 URI攻击
  1.1.3 请求方法、请求头和数据体
  1.1.4 资源
  1.1.5 认证,会话和授权
  1.1.6 Web客户端和HTML
  1.1.7 其他协议
 1.2 为什么攻击Web应用
 1.3 何人、何时、何地攻击Web应用
  1.3.1 安全薄弱点
 1.4 如何攻击Web应用程序
  1.4.1 Web浏览器
  1.4.2 浏览器扩展
  1.4.3 HTTP代理
  1.4.4 命令行工具
  1.4.5 一些老工具
 1.5 小结
<< 查看详细目录

【译者序】

经过近一年的辛苦工作,《黑客大曝光——Web应用安全机密与解决方案(第2版)》的翻译终于告一段落。看着厚厚的书稿,无疑有一些轻松的感觉。正是“纳清风台榭开怀,傍流水亭轩赏心。”.
记得四年前,自己的第一本书《缓冲区溢出教程》出版时,漏洞满天飞,蠕虫肆虐,肉鸡成群。几年过去了,现在可喜地看到,政府、企业、网管的安全意识越来越强,安全措施越来越完善,安全技术也水涨船高,利用一个漏洞扫描器就可以忽悠单子的时代一去不复返了。不过,安全所处的大环境也急剧地变化,新型的网络应用越来越多,电子商务越来越发达;而另一方面,网络攻击正逐渐走向商业化,攻击者从追求名声转变成了追逐利益,黑客地下产业链.. << 查看译者序

【前言】

回到1999年,《黑客大曝光(第1版)》让很多人看到了计算机网络和系统的脆弱性。虽然迄今为止仍然有很多人并没有意识到这一现实,但还是有大量的人开始了解到防火墙、安全的操作系统配置、厂商补丁维护,以及以前看来神秘的信息系统安全基础设施的必要性了。.
遗憾的是,因特网带来的迅猛发展已经大大超过了人们的想象。防火墙、操作系统安全以及最新的补丁,都能被一个针对Web应用的简单攻击绕过。虽然这些元素仍是所有安全基础设施的重要部件,但它们已经无力阻止新一代的攻击,而这些攻击现在每天都在快速发展着。
这不是我们的一家之言,Gartner Group报道说,75%的攻击都在Web应用层面上,而且对超.. << 查看前言

【序言】

头脑让我的思维展翅翱翔。.
——Harry Houdini
攻击一个Web应用程序就像表演一个魔术。如果你知道正确的技术和方法,你可以闯入任何在线银行、信用合作社、股票交易所、电子商务商店或者社会网络的Web站点。只需使用Web浏览器作为你的魔法棒,用你最快的速度说:“芝麻开门!”,你就进去了。这正是本书的内容——安全产业顶级的Web应用专家们公开他们曾守口如瓶的Web攻击机密,这样大家可以据此实施一些防护措施来保护自己。即使是传奇魔术师哈里?霍迪尼也会铭记这些书页所描述的技术。
本书的作者,同样也是Web应用安全专家,他们考察Web站点的方式和大多数人有很大的不同。他们好像有某种神秘的力.. << 查看序言

【书摘】

第6章 输入验证攻击
  输入验证是Web应用程序安全防范的首道防线。许多攻击,如SQL注入,脚本攻击(包括了跨站脚本),以及详细错误信息的泄漏,都是由于攻击者向程序提交了未曾预料到的输入类型而造成的。
  输入验证就是为了确保输入数据的格式和类型都是程序所需的。如果不进行严格的检查以减少误操作,程序的完整性和它的信息就有可能会受到损害。
  想象一个应用程序中的购物车,我们考虑其信用卡字段。首先,信用卡号码只包含数字;其次,大多数信用卡号码都是16位的数字,但也有一些是小于16位的。因此,如果进行输入验证,第一项应该是长度检查:输入的数据是否为14~16位的字符;第二项检查应该是内容检查:输入的数据是否含非数字的字符。我们可以在系统中加上另一项检查:输入的数据是否是一个合法的信用卡号码。“0000111122223333”显然不是一个信用卡号码,但“4435786912639983”呢?我们写一个简单的校验和程序就可以判断一个16位数字是否符合合法的信用卡号码要求。另外,一些常识性知识也可以用来验证,比如,一个15位的信用卡号码应该以3开头,第二位应该为4或者7。这个信用卡的例子演示了如何测试输入为一串数字的合法性。但请注意,这个例子没有尝试判断信用卡号码是否匹配用户名或用户地址,而只是尝试验证号码本身的合法性。本章内容着重于两点:一是完全信任用户提供的数据会带来的危险;二是如果没有恰当的限制期望的数据类型,攻击者攻击应用程序各种的方法。
  数据验证可能会非常的复杂,但它却是应用程序安全基础中的基础。应用程序的开发者应该事先预料到用户在表单字段中所有可能的输入值。刚才我们提到了验证信用卡号码的三种简单方法:长度、内容和校验和。这样的验证过程可以放在HTML页面中,以JavaScript实现,并运行在SSL之上。基于JavaScript的解决方案非常简单,也的确是开发人员最常使用的方法之一。但在接下来的几节里,我们将会看到,客户端的输入验证可以被绕过,而SSL只是起到保护Web传输的保密性。换句话说,我们不能信任Web浏览器所做的安全检查工作,通过SSL加密连接不会对提交到应用程序的数据内容造成任何的影响。
  6.1 预料意外的情况
  输入验证最大的一个安全漏洞就是将验证流程用JavaScript实现并放在浏览器中。使用客户端的脚本语言实现验证流程似乎是合情合理的,原因首先是验证流程不必在服务端实现;其次是,客户端验证容易实现且被大多数Web浏览器支持(虽然也有很个别的浏览器不支持);更重要的是,这样就把服务端所要做的大量工作移到了客户端,是应用程序的一种成功。但Web浏览器是不可信、不可控的环境,所有传入传出的数据都可在传输途中被修改,不管是否存在输入验证流程。因此,用于购买新的Web服务器来处理服务端输入验证的支出,远远小于恶意用户使用%0a的小手段来损害到应用程序安全带来的代价。
  输入验证的攻击可能针对应用程序的不同方面。理解黑客如何攻击不完整的验证流程是非常重要的,因为他们带来的危险远不只“垃圾数据”错误那么简单。
  数据存储:包括SQL注入攻击中使用的字符。这些字符可以改写数据库查询语句,导致执行攻击者定制的行为。产生的错误能泄漏出各种信息,比如应用程序采用的编程语言,甚至是应用程序发送到数据库的具体SQL查询语句。
  冒充其他用户:包括跨站脚本以及与“钓鱼”相关的攻击。攻击者可以通过提交数据改写HTML,从而窃取其他用户的信息,或者引诱用户泄露他们的敏感信息。
  控制Web服务器:此类攻击因操作系统不同而不同。比如插入分号,能在UNIX的Web服务器上执行任意指令。应用程序本来要在Web服务器上执行命令,但通过特殊的字符,可以欺骗它执行其他的命令。
  泄露应用程序内容:攻击者能通过产生的错误来泄露程序的语言信息。其他攻击方法也可以绕过浏览器对文件类型的限制。比如许多Nimda蠕虫的变种,使用了斜线(用来分隔目录)其他的编码方式来绕过IIS的安全检查,从而可以访问Web根目录以外的文件。
  缓冲区溢出攻击:缓冲区溢出攻击已经困扰着程序多年了,Web应用程序也不例外。此类攻击包括向一个变量或者字段中填充尽可能多的字符,然后观察其结果。这样可能会导致应用程序崩溃或者停止执行任意命令。缓冲区溢出更多在编译语言,如C或C++中,被关注,而在Perl或Python等解释性语言中则很少注意。基于.NET和Java的Web平台,由于不允许程序员直接操纵堆栈和堆分配(这是缓冲区溢出的条件),从而导致应用层面的缓冲区溢出非常困难。缓冲区溢出可能会在特定的语言平台上长期存在。
  获得任意数据的访问权限:一个用户可以访问另一个同级用户的信息,比如一个顾客可以查看另外一个顾客的账单信息;一个用户可以访问某些特权数据,比如匿名用户能够枚举、创建或者删除用户。数据访问同样适用于受保护的文件或程序中的管理员领域。
  6.2 在哪里寻找攻击载体
  每一个GET和POST的参数都可以用来做输入验证攻击,更改参数,不管它们来自表单还是应用程序,都是一项很细微的工作。最易被攻击的点是输入字段。通常这些字段包括登录名、密码、地址、电话、信用卡号以及搜索,其他使用下拉菜单的字段也不应该被忽略。第一步需要枚举出这些字段以及它们大概的输入类型。
  不要错误地认为输入验证攻击的目标只能是用户需要完成填写的字段,事实上, GET和POST请求的任何变量都有可能被攻击。对一个很有价值的目标,攻击者在攻击前会深入全面的调查程序的文件、参数和表单字段。
  Cookie是另一类攻击目标。Cookie本来包含了用户不能故意操纵的值,但也有可能被用于SQL注入或冒充其他的用户。
  Cookie只是一种特殊的HTTP头。事实上,任何HTTP头都是输入验证攻击的载体。HTTP响应头截断是另一种以HTTP头为攻击目标的例子,它将正常地响应截断,注入伪造的头部集(通常是Cookie或控制缓存,会给客户端带来很大的破坏)。
  让我们仔细分析一下HTTP响应头截断攻击。攻击的目标是使用参数作为转向指示的程序。例如,一个存在潜在漏洞的URL如下:
  http://Website/redirect.cgi?page=http://Website/welcome.cgi
  一个很好的输入验证流程需要确认page参数的值是一个合法的URL。但如果可以包含任意的字符,那么参数可以被改写为如下的样子:
  http://Website/redirect.cgi?page =0d%0aContent-Type:%20text/
  html%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-Type:%20text/
  html%0d%0a%0d%0a%3chtml%3eHello, world!%3c/html%3e
  Page原来的值被一串字符所替换了,这些字符模拟了来自一个Web服务器的HTTP响应头,包括了一个简单的HTML字符串“Hello, world!”。将编码后的字符替换掉,恶意载荷就更容易理解了:
  Content-Type: text/html
  HTTP/1.1 200 OK
  Content-Type: text/html
  <html>Hello, world!</html>
  最终的攻击结果是浏览器显示了伪造的HTML内容,而不是期望转向的网页。这个例子似乎并无破坏作用,但恶意攻击可以包含JavaScript等内容,使其看起来需要用户提交密码、社会保险号、信用卡信息或其他敏感信息。这里不是要讨论如何构造有效的钓鱼攻击,而是想说明参数的内容可以被操纵,而且会产生意想不到的效果。
  6.3 绕过客户端验证
  如果程序的输入验证只采用了基于JavaScript的方法,那么这个程序远没有想象中的安全。客户端的JavaScript基本上是都可以被绕过的。一些个人代理、个人防火墙以及Cookie管理软件都吹嘘它们可以过滤掉网站弹出窗口和其他入侵组件。其实很多计算机专家也完全关闭JavaScript,以防止受到最新E-Mail病毒的攻击。总而言之,有很多的理由和简单的方法让Internet用户禁用JavaScript。
  当然,禁用JavaScript会使很多应用程序不完整。不过现在有很多的工具可以移除JavaScript或允许我们在JavaScript检查后提交内容。使用一个像Paros的代理,我们就可以在GET或POST请求发送到服务器之前将其截获,以这种方式可在浏览器中输入能通过验证的数据,而在代理中将数据改变为任意值。
  6.4 常见的输入验证攻击
  让我们看一下常见的输入验证攻击。虽然大多数攻击只是向程序倾倒垃圾数据,但也有一些攻击含有精心构造的字符串。在本章中,我们只是展示一下可能被攻击的漏洞,而把具体的攻击细节放在其他章节中讲解。例如,SQL注入攻击也是输入验证攻击,但我们会在第8章中再详细讨论。
  6.4.1 缓冲区溢出
  缓冲区溢出很少会在解释性或高级编程语言中产生。比如,使用PHP或Java语言编写的程序,产生漏洞的可能性就很小。但还是有可能发生的,比如使用了某种语言的自带函数,而这个函数本身就含有缓冲区溢出漏洞。不过,还是建议把精力放在其他输入验证,Session管理和其他的Web安全方面。当然,如果程序包含了自己编写的IIS的ISAPI接口或Apache模块,那么还是需要进行缓冲区溢出的检查,或者进行更高效的代码安全评审。
  实现缓冲区溢出攻击,只需要在一个输入字段中输入尽量多的数据,这是一种非常暴力和野蛮的攻击,但如果程序返回了一个错误,那么攻击就起作用了。Perl非常适合做这种类型攻击,只需要一条指令就可以对一个参数产生任意长度的攻击。
  

【插图】

chatu

【免费试读】

 电子书Web试读版:试读本书 全部品种
免费试读 第6章..  
>>进入在线免费试读
>>51CTO在线试读
评论交流 共有8人开贴评论  8人参与评论  8人参与打分 查看
2人
 25%
用户平均打分
我要写评论 help如何参与评论和打分
2人
 25%
4人
 50%
0人
 0%
0人
 0%

FreeSeagull

一级评论员
该会员在china-pub购买过此书
评价等级:  
发表于:2009-3-22 12:04:00
翻譯的一般,很多地方一看就知道是生硬的逐字翻譯。
您觉得呢? 送鲜花 (得0支)  扔鸡蛋 (得0个)

zhengtiandfg

一级评论员
该会员在china-pub购买过此书
评价等级:  
发表于:2009-3-12 17:41:00
原书不错.但翻译的有点差。 有许多代码一眼就看出有问题。
您觉得呢? 送鲜花 (得0支)  扔鸡蛋 (得0个)

simon680

一级评论员
该会员在china-pub购买过此书
评价等级:  
发表于:2009-1-21 13:39:00
翻译得不错,阅读流畅。
这个系列的书还是不错的,知识点比较全面。值得一读。
您觉得呢? 送鲜花 (得0支)  扔鸡蛋 (得0个)

ecore_linux

出版商
该会员在china-pub购买过此书
评价等级:  
发表于:2008-7-21 10:38:00
http://www.phei.com.cn/bookshop/bookinfo.asp?bookcode=TP066690 &booktype=main
电子工业出版社可以订购了。china-pub就是慢。
您觉得呢? 送鲜花 (得0支)  扔鸡蛋 (得0个)

nt_lwp

一级评论员
该会员在china-pub购买过此书
评价等级:  
发表于:2008-7-18 15:41:00
何时才能有货?
您觉得呢? 送鲜花 (得0支)  扔鸡蛋 (得0个)
我要写评论
查看所有评论交流(共8条)