剖析是用于研究和精确描述网站结构和应用工作方式的策略,是一个非常重要却常被忽视的Web入侵方向。最有效的攻击是基于缜密的准备工作,尽可能地说明应用的内部工作原理,包括网站的所有网页、应用和输入/输出控制结构。
剖析过程的勤奋和严格以及投入的时间常常与整个网站上识别出的安全性问题的质量直接相关,并且常常能区分出发现“随手可摘的果实”的“脚本小孩(script kiddle)”评估(如简单的SQL注入或者缓冲区溢出攻击)和真正揭露应用核心业务逻辑的渗透之间的差别。
Web剖析中使用许多工具和技术,但是在阅读本章之后,你将能走上专家之路。我们对剖析的讨论分为两部分:
·基础架构剖析
·应用剖析
我们选择这种组织结构是因为每种类型的剖析的想法、方法和结果都有所不同。基础架构剖析关注Web应用相对不变的“现有”组件(我们宽泛地使用“现有”这个词来包含所有形式的通用重用软件,包括免费软件、开源软件和商业软件)。通常,这些组件中的漏洞容易识别并且加以利用。另一方面,应用剖析处理单独的高度定制Web应用的独特结构、逻辑和功能。应用漏洞可能很微妙,需要花费大量的研究才能发现和利用。当然,我们对应用剖析的讨论也将占本章的很大部分。
本章最后将简短讨论对常见剖析策略的一般对策。