3

有没有办法使用目录遍历攻击来执行命令?

例如,我etc/passwd像这样访问服务器的文件

http://server.com/..%01/..%01/..%01//etc/passwd

有没有办法代替运行命令?像...

http://server.com/..%01/..%01/..%01//ls

.....并获得输出?

在这里要清楚一点,我在我们公司的服务器中找到了这个漏洞。我希望通过证明它可以让攻击者完全访问系统来提高风险级别(或对我来说加分)

4

6 回答 6

2

Linux 上的 Chroot 很容易被破解(不像 FreeBSD)。更好的解决方案是打开 SELinux 并在 SELinux 沙箱中运行 Apache:

run_init /etc/init.d/httpd restart

确保您已安装并正确配置了 mod_security。

于 2011-01-01T00:46:24.477 回答
1

如果您能够查看 /etc/passwd 作为文档根目录或对服务器上未正确配置的目录的访问权限,则此漏洞的存在并不自动意味着您可以执行您选择的命令。

另一方面,如果由于 Web 应用程序在诸如 popen、exec、system、shell_exec 或未经过充分清理的变体等调用中使用用户输入(文件名)而能够查看 /etc/passwd 中的条目,那么您可能能够执行任意命令。

于 2010-02-14T21:52:46.203 回答
0

除非 Web 服务器是完全由不知道自己在做什么的人编写的,否则尝试ls使用它进行访问(假设它甚至可以工作)将导致您看到ls二进制文件的内容,而没有其他内容。

这可能不是很有用。

于 2010-02-14T21:28:51.970 回答
0

编辑#2:我已经删除了我的评论,因为它们被认为是讽刺和直率的。好的,现在随着更多信息来自 gAMBOOKa,Apache with Fedora - 你应该提出这个问题 - 我建议:

  • 发布到 Apache 论坛,突出显示您正在运行最新版本的 Apache 并在 Fedora 上运行,并将漏洞利用提交给他们。
  • 再次发布到 Fedora 的论坛,突出显示您正在运行最新版本的 Apache 并将漏洞利用提交给他们。
  • 应该注意的是,在发布到他们的论坛时,将 httpd.conf 包含在两个站点中。
  • 为了最大限度地减少对 passwd 文件的访问,请查看在沙箱/chrooted 环境中运行 Apache,其中任何其他文件(例如 passwd)在沙箱/chrooted 环境之外不可见...您是否有一个备用盒子可以试验它甚至最好使用 VMWARE 来模拟您用于 Apache/Fedora 的相同环境 - 尝试使其成为相同的环境,并使 httpd 服务器在 VMWare 中运行,并远程访问虚拟机以检查漏洞是否仍然可见。然后 chroot/sandbox 它并再次重新运行漏洞利用...
  • 记录逐步重现它并包含建议,直到找到修复程序,同时如果对在沙盒/chrooted环境中运行的网络服务器的影响最小 - 推动他们这样做......

希望这会有所帮助,最好的问候,汤姆。

于 2010-02-14T21:31:06.140 回答
0

是的,如果应用程序真的很糟糕(就安全性而言),这是可能的(第一个问题)。

http://www.owasp.org/index.php/Top_10_2007-Malicious_File_Execution

于 2010-02-14T21:35:24.027 回答
0

如果你已经可以查看etc/passwd那么服务器一定配置不好...如果你真的要执行命令那么你需要知道服务器中运行的php脚本是否有任何system()命令这样你才能通过通过 url 的命令.. 例如: url?command=ls 尝试查看 .htaccess 文件.. 它可能会成功..

于 2011-02-15T10:29:27.447 回答