如果能够从本地访问应用程序,执行以下操作。
(1)使用适当的工具监控服务器上的所有文件系统活动。例如,可以在Windows平台上使用SysInternals开发的FileMon工具,在Linux平台上使用ltrace/strace工具,在Sun Solaris平台上使用truss命令。
(2)在每一个被提交的参数(包括全部cookie、查询字符串字段和POST数据项)中插入一个特殊的字符串(如traversaltest)测试应用程序的每一个页面。一次仅针对一个参数进行测试,并使用第14章描述的自动技巧加速测试过程。
(3)在文件系统监控工具中设置一个过滤器,确定所有包含测试字符串的文件系统事件。
(4)如果发现测试字符串被用作文件或目录,或者出现在文件或目录名中,那么对每一种情况进行测试(如下所述),确定其是否易于受到路径遍历攻击。
探查路径遍历漏洞
确定各种潜在的路径遍历测试目标后,必须分别测试每种情况,弄清其是否以不安全的方式向相关文件系统操作传送用户可控制的数据。
在测试用户提交的参数时,需确定遍历序列是否被应用程序阻止,或者它们是否能够正常工作。通常,提交不会向上回溯到起始目录的遍历序列是一种较为可靠的初步测试方法。