几 乎所有应用程序都依赖数据存储区来管理在应用程序中处理的数据。在许多情况下,这些数据负责处理核心应用程序逻辑、保存用户账户、权限、应用程序配置设置等。现在,数据存储区已不再只是被动的数据容器。大多数数据存储区都保存有结构化、可以使用预先定义的查询格式或语言访问的数据,并包含内部逻辑来管理这些数据。
通常,应用程序使用常用的权限级别来管理对数据存储区的各种访问操作,以及处理属于不同应用程序用户的数据。如果攻击者能够破坏应用程序与数据存储区的交互,使应用程序检索或修改各种数据,那么,攻击者就可以避开在应用层次对数据访问实施的任何控制。
上述原则适用于任何类型的数据存储技术。因为本书是一本实用手册,我们将主要讨论利用现实世界的应用程序中存在的漏洞时所需的知识和技巧。迄今为止最常用的数据存储区是SQL数据库、基于XML的资料库、LDAP目录,以及一些常见的示例。
在讨论这些主要示例时,我们将介绍你在确定并利用这些缺陷时可以采取的实用步骤。每一种新型注入攻击都需要结合概念加以理解。掌握利用这些缺陷的基础知识后,如果再遇到一种新型注入攻击,你就能够自信地应用这些知识,设计出其他攻击方法,向其他人已经研究过的漏洞发动攻击。