Web应用中入侵者首先要利用的最突出组件是Web平台中的漏洞。Web平台由位于主操作系统之上、定制应用逻辑之下的通用(不一定是商用的!)现成(COTS)软件组成。Web平台通常包含:
·Web服务器软件(例如IIS或者Apache)
·Web服务器扩展,例如ISAPI过滤器及扩展或者Apache模块
·动态执行环境如ASP.NET、PHP和J2EE(也称为应用服务器)
·服务和守护进程,例如用户论坛或者Web留言板软件包
与Web平台的定义相比较,我们认为应用层组件是COTS之外,对特定网站或者应用来说独一无二的所有组件。例如,Google的搜索引擎逻辑可以看作一个应用层组件。
在本章中,我们还将聚焦于错误配置之外的软件缺陷。我们已经将读者的注意力集中到两类不同的Web平台漏洞上:网站管理员和开发人员能够直接修复的问题,以及那些必须依赖软件供应商帮助,通过软件版本更新和补丁修复的问题。我们将在第8章中讨论错误配置的漏洞。最后一次澄清范围:本章将关注Web平台攻击基本要点和对策,主要使用小规模的工具和技术。对使用Web安全漏洞扫描程序进行的大规模自动化Web安全评估将在第10章中讨论。
历史上,Web服务器软件漏洞是攻击网站的最简易手段,但是最近许多流行的Web服务器软件开发团队变得更加注意安全,这主要是因为他们的产品在多年来已经受到了黑客极大的打击。Microsoft的IIS是这方面的楷模。尽管IIS版本4和5经常发现严重的漏洞,但是更新的版本已经相对不受影响,这主要归功于IIS开发过程中对安全的关注。
当然,这并不意味着你可以忽略Web平台漏洞。我们见过在超过10000台服务器的服务器场中的6个脆弱的Web服务器在几天内导致整个企业网络泄密的情况。更糟糕的是,正如我们在本章将要说明的,黑客社区持续发展他们的工具集,使得识别和利用这些缺陷更加容易。
本章将描述如何查找、利用和防御最流行的Web平台上常见的安全性漏洞。我们的讨论将组织为:
·点击攻击
·手工攻击
·躲避技术
和往常一样,我们将以应对这些攻击的常见对策和安全最佳实践作为结束。