数据验证测试

  我们将数据验证测试划分为以下类别:

  ◆ 跨站点脚本的测试

  在跨站脚本攻击(XSS)的测试中,我们测试能否操纵应用程序参数输入,使之产生恶意输出。当应用程序没有:验证输入数据并在我们控制下产生输出时,我们能发现XSS漏洞。此漏洞会产生各种攻击。例如,窃取机密信息(如会话cookie)或控制受害者的浏览器。一个跨站脚本攻击方式如下:Input -> Output == cross-site scripting。

    ● 跨站脚本反射测试

    ● 跨站脚本存储测试

    ● 跨站脚本DOM测试

    ● FLASH跨站测试

  ◆ SQL注入

  SQL注入测试检测是否有可能将数据注入到应用程序中,以便它能在后端数据库中执行用户控制的SQL查询。如果应用程序在没有恰当验证数据的情况下使用用户输入创建SQL查询,那幺说明该应用程序存在SQL注入漏洞。成功利用这一类别的漏洞会导致未授权用户访问或操作数据库中的数据。请注意,应用数据往往代表了公司的核心资产。SQL注入攻击方式如下:Input -> Query SQL == SQL injection

  SQL注入测试进一步细分为:

    ● Oracle测试

    ● MySQL测试

    ● SQL Server测试

    ● MS ACCESS测试

    ● PostgreSQL测试

  ◆ LDAP注入

  LDAP注入测试类似于SQL注入测试。不同之处在于我们不是使用SQL而是使用LDAP协议,同时测试的目标是LDAP服务器,而不是SQL服务器。LDAP注入攻击方式如下:

  Input -> Query LDAP == LDAP injection

  ◆ ORM注入

  ORM注入测试同样类似于SQL注入测试。在这种情况下,我们使用SQL注入攻击ORM产生的数据访问对象模型。从测试的角度来看,这种攻击几乎和SQL注入攻击相同。然而,代码中存在的注入漏洞是由ORM工具产生的。

  ◆ XML注入

  XML注入测试检测是否有可能在应用程序中注入特定的XML文档。如果XML解析器没有验证任何数据,那幺该应用程序存在XML注入漏洞。一个XML注入攻击方式如下:

  Input -> XML doc == XML injection

  ◆ SSI注入

  Web服务器通常让开发者在静态HTML网页中增加小型动态代码,而不必处理全面的服务器端或客户端语言。服务器端嵌入(SSI)注入能够体现这一特色。SSL注入测试检测是否有可能在应用程序中注入SSI机制解释的数据。黑客成功利用此漏洞后能够将代码注入到HTML网页,甚至远程执行代码。