我们有一个非常大的 Web 应用程序,大约有 1000 页需要测试(www.project-open.com,一个面向服务公司的项目 + 财务管理应用程序(。每个页面可以采用多个参数(对象 ID、过滤器、用于排序的列名......我们现在将对这些参数实施额外的安全检查,因此我们需要系统地测试a(攻击性参数值被拒绝,b(应用程序实际使用的参数值是否被正确接受。
示例:我们可能想说页面中的 sort_column 参数应该只包含字母数字字符。但实际上,应用程序可能包含带有空格的列名,从而导致误报安全警报(空格字符不是字母数字字符(。
我对此进行测试的想法是 1( 以代理模式手动导航到这些页面中的每一个,2( 告诉 ZAP 开始抓取此页面上的所有链接一个或两个级别,以及 3( 告诉 ZAP 开始对这些 URL 进行模糊测试。
如何实现这一点?我对 ZAP 有基本的了解,并对 ]project-open[.我已经阅读了有关用于扫描 URL 列表的 ZAP 扩展的信息,但在我们的情况下,我们希望对每个 URL 执行一些特定的 ZAP 操作......
我将总结您的一些选择:
我将首先使用 ZAP 桌面,以便您可以控制它并确切地查看它有什么效果。您可以启动浏览器,浏览您的应用程序,然后主动扫描您找到的 URL。标准的蜘蛛会发现非常有效地探索传统应用程序,但大量使用 JavaScript 的应用程序可能需要 ajax 蜘蛛。
您还可以使用"攻击模式",该模式攻击您通过 ZAP 代理的范围内(您定义(中的所有内容。这只是意味着 ZAP 有效地遵循您的操作并攻击任何新事物。如果您不探索应用程序的一部分,则 ZAP 不会攻击它。
如果您想实现自己的测试,那么我会看看创建脚本化的活动扫描规则。我们可以为您提供这些帮助,但我现在只是从探索您的应用程序并运行默认规则开始。