14.1 应用定制自动化攻击

在以下3种情况下,定制自动化攻击技巧有助于渗透测试员向Web应用程序实施攻击。

img002 枚举标识符 。大多数应用程序使用各种名称与标识符指代数据和资源,如账号、用户名和文档ID。测试员需要经常浏览数目庞大的潜在标识符,才能枚举出那些有效或值得进一步研究的标识符。在这种情况下,可以使用完全定制的自动技巧来分析一组可能的标识符,或者遍历应用程序所使用的标识符的语法范围。

使用页码参数获取特殊内容的应用程序就是一个典型的示例:

img442

在浏览应用程序的过程中,会发现大量有效的PageNo值;但是,要确定每一个有效值,必须循环查找整个语法范围,而手动操作根本无法做到这一点。

img002 获取数据 。通过提出专门设计的特殊请求,利用各种Web应用程序漏洞,测试员就可以从应用程序中提取到有用的或敏感的数据。例如,个人资料页面可能会显示当前用户的个人与银行交易信息,并指出该用户在应用程序中的权限。通过一个访问控制漏洞,就可 以查看任何用户的个人资料页面,但一次只能获得一名用户的资料。要获得所有用户的资料,可能需要提交成千上万个请求。这时,就可以使用一个自动化定制攻击截获所有数据,而不是进行手动操作。

获取有用数据的一个示例是对前面描述过的枚举攻击的扩展。这时不必确认到底哪些PageNo值为有效值;相反,可以利用自动化攻击来从获得的每个页面中提取出HTML标题标签(title tag)的内容,迅速扫描所有页面,查找有用的数据。

img002 Web应用程序模糊测试 。当描述探查常见Web应用程序漏洞时,能够见到大量的示例,在这些示例中,探查漏洞的最佳方法是提交各种反常的数据和攻击字符串,然后检查应用程序的响应,查找任何表示可能存在漏洞的异常现象。在大型应用程序中,在进行初步解析过程中,已经确定一些需要探查的特殊请求,每个请求都包含各种不同的参数。手动检查每一个参数既费时又费力,而且可能会忽略大部分受攻击面。但是,使用定制自动攻击技巧,就可以立即生成大量包含常用攻击字符串的请求,迅速访问服务器的响应,找到所有值得进一步研究的参数。这种技巧常被称为模糊测试(fuzzing)。

我们将详细讨论这三种情形,并说明如何利用定制自动攻击技巧显著提高攻击效率。