消息泄漏测试主要是测试系统泄露敏感信息的风险。敏感信息包括数据库连接地址、账号和口 令等信息,服务器系统信息,Web 服务器软件名称、版本,Web 网站路径,除 html 之外的源代码, 业务敏感数据等。
主要包括以下几方面内容: 数据库账号密码测试。 客户端源代码敏感信息测试。 客户端源代码注释内容测试。 异常测试。 不安全的存储测试。 Web 服务器状态信息测试。 HappyAxis.jsp 页面测试。
(1)数据库账号密码测试。 测试连接数据库的账号密码在配置文件中是否以明文方式存储,如果是,就很容易被恶意维护 人员获取,从而直接登录后台数据库进行数据篡改。 测试时找到连接数据库的账号密码所在的配置文件,查看配置文件中的账号密码是否被加密。 (2)客户端源代码敏感信息测试。 客户端源代码敏感信息测试主要是测试 Web 页面的 HTML 源代码中是否包含口令等敏感信 息,特别关注修改口令、带有星号口令的 Web 页面。 测试进入一个有敏感信息的页面(如带有修改口令的页面),单击右键查看源文件,源文件中 不应包含明文的口令等敏感信息。 (3)客户端源代码注释内容测试。 如果开发版本的 Web 程序所带有的注释在发布版本中没有被去掉,也可能会导致一些敏感信 息泄漏,测试时应该注意页面源代码中是否存在此类安全隐患。 测试进入一个有敏感信息的页面(如带有修改口令的页面),单击右键,查看源文件中有关注 释信息是否包含明文的口令等敏感信息。 (4)异常测试。 异常测试主要是通过构造一些异常的条件来访问 Web 系统,观察其返回的信息来判断系统是 否存在信息泄漏的问题。通常异常处理包括三种情况:不存在的 URL、非法字符和逻辑错误。
1)不存在的 URL 主要是测试当客户提交不存在的 URL 时,Web 系统返回的信息,观察返回 信息中是否包含敏感信息。例如输入一个不存在的 URL(http://192.168.3.9/unexist.jsp),观察返回 的错误信息中是否包含敏感信息。 2)非法字符导致信息泄漏是指,当用户提交包含特殊字符的 URL 时,Web 系统可能返回错 误的信息,通过错误信息来判断是否存在敏感信息的泄漏问题。测试时在正常的 URL 的参数中添 加特殊字符%、*、;、’、?,如以下 URL: http://www.exmaple.com/page.xxx?name= value% http://www.exmaple.com/page.xxx?name= value* 观察返回的信息,返回信息中不应包含敏感信息。 3)逻辑错误是指 Web 应用在处理一些具有逻辑错误的请求时,可能会返回错误的信息,通过 返回的错误信息来确认是否有敏感信息的泄漏问题。测试时根据详细说明书,尽可能地尝试使用违 背业务逻辑处理的参数来访问 Web 系统并观察 Web 系统返回的异常信息。
(5)不安全的存储测试。 不安全的存储测试主要是测试存储在服务器上的配置文件、日志、源代码等是否存在漏洞,该 项测试没有具体的指导方法,测试时主要关注以下几个问题: 上传文件所在的目录(包括临时目录)能否被直接远程访问。 服务器配置文件目录或日志所存放的目录能否被直接访问。 公用文件头(如数据库链接信息、源代码头文件等)是否采用不被服务器处理的后缀(如 inc 作为文本格式直接输出)进行存储。 在日志或数据库中是否能查找到明文的敏感信息。 (6)Web 服务器状态信息测试。 Web 服务器状态信息测试主要是测试 Web 服务器默认提供的服务器状态信息查询功能,是否 会泄漏系统信息,进而存在被攻击的可能性。测试时进入Web服务器状态信息页面http://192.168.1.9/ status?full=true,观察页面返回的信息,检查页面中是否包含服务器的敏感信息。 (7)HappyAxis.jsp 页面测试。 HappyAxis.jsp 页面测试主要是测试 HappyAxis.jsp 页面中是否存在一些服务器的敏感信息。对 于使用 Axis 来发布的 Web Service,默认是保存 HappyAxis.jsp 页面。测试步骤如下: 步骤 1:登录 Web 服务器的操作系统。 步骤 2:在系统中查找 HappyAxis.jsp 文件。 步骤 3:使用查找到的目录信息来构造访问 HappyAxis.jsp 页面的 URL,并进行访问,如 http://192.168.1.9/axis3/happyaxis.jsp。 如果能正常访问 HappyAxis.jsp 文件,说明系统存在漏洞。