(1)使用标准搜索引擎搜索任何不常见的错误消息的文本。可以使用各种高级搜索特性缩小搜索范围,例如:
(2)检查搜索结果,寻找所有关于错误消息的讨论以及其他出现相同消息的站点。其他应用程序生成的同一条错误消息可能更详细,有助于更好地了解错误条件。使用搜索引擎缓存获取不再出现在当前应用程序中的错误消息。
(3)使用Google代码搜索查找任何生成特定错误消息的、公开发布的代码。搜索可能被硬编码到应用程序源代码中的错误消息代码段。还可以使用各种高级搜索特性指定代码语言及其他已知的细节,例如:
(4)如果获得了包含库与第三方代码组件名称的栈追踪,在上述两种搜索引擎中搜索这些名称。
有些情况下渗透测试员可以系统性地制造错误条件,以获取错误消息中的敏感信息。
假如能让应用程序对一个特殊的数据执行某种无效的操作,就可能出现上述情况。如果生成的错误消息揭示该数据的值,就可以让应用程序以这种方式处理有用的信息,然后利用这种行为从应用程序中提取任意数据。
可以在SQL注入攻击中利用详尽的开放式数据库连接(ODBC)错误消息检索任意数据库查询的结果。例如,如果将以下SQL注入WHERE子句中,将导致数据库将用户表中第一个用户的密码转换为整数,以执行求值操作:
这会导致以下详细的错误消息: