路径遍历过滤器绕过技术?

信息安全 路径注入
2021-08-13 08:18:22

我有一个基于 Linux 的嵌入式系统,带有用于管理目的的 Web 界面。根据一篇安全论文,该网络服务器具有针对 URL 参数中的目录遍历攻击的基本过滤器。因此,为了绕过“../”过滤器,需要使用带有特殊字符串的 URL。常见的路径遍历过滤器绕过技术有哪些?

2个回答

您可以尝试使用各种编码来绕过过滤器:

  • 尝试在文件夹名称的开头尝试/\到达根目录。
  • 尝试%2f%5c(上述的百分比编码版本)。
  • 尝试使用 16 位 Unicode 编码 ( .= %u002e, /= %u2215, \= %u2216)。
  • 尝试双 URL 编码(.= %252e/= %252f\= %255c)。
  • 尝试超长 UTF-8 Unicode 编码(.可以是%c0%2e, %e0%40%ae, %c0ae,/可以是%c0%af, %e0%80%af,%c0%2f等,\可以是%c0%5c, %c0%80%5c)。

如果您在尝试上述方法之一时得到不同的响应,那么您已经设法更改了正在访问的执行路径或文件系统路径。这可能表明使用的特定序列可能值得进一步研究。

对于 Web 应用程序的安全性,许多常见的黑客攻击都记录在相关的 OWASP 测试指南和攻击页面中。OWASP 提供了路径遍历攻击测试指南

一般概念是使用可以欺骗路径遍历代码的字符。嵌入空值、unicode 表示法等内容有时可以绕过路径遍历过滤器。

请注意,强大的实现不会受到任何这些的影响。它将使用字符白名单和其他措施来防止这些技巧中的任何一个成功。