使用目录遍历攻击来执行命令

时间:2010-02-14 21:19:51

标签: linux security scripting directory-traversal

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

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

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

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

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

.....并获得输出?

在这里要清楚,我在公司的服务器上找到了这个漏洞。我希望通过证明它可以让攻击者完全访问系统来提高风险等级(或者我的奖励积分)

6 个答案:

答案 0 :(得分:2)

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

run_init /etc/init.d/httpd restart

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

答案 1 :(得分:1)

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

另一方面,如果您能够在没有充分清理的情况下使用popen,exec,system,shell_exec或变体等调用中的用户输入(filename)来查看来自/ etc / passwd的条目,那么你可以执行任意命令。

答案 2 :(得分:0)

除非网络服务器被一个不知道他们正在做什么的人完全隐藏编程,否则尝试使用它(假设它甚至有效)访问ls会导致你看到{{1的内容二进制,没有别的。

这可能不是很有用。

答案 3 :(得分:0)

编辑#2:我已经删除了我的评论,因为他们被视为讽刺和直言不讳。现在好了,因为更多的信息来自gAMBOOKa关于这个,Apache和Fedora - 你应该提出这个问题 - 我建议:

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

希望这有帮助, 最好的祝福, 汤姆。

答案 4 :(得分:0)

是的,如果应用程序确实非常糟糕(就安全性而言)是可能的(第一个问题)。

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

答案 5 :(得分:0)

如果您已经可以查看etc / passwd,那么服务器必须配置不当... 如果你真的想执行命令,那么你需要知道服务器中运行的php脚本是否有任何system()命令,以便你可以通过url传递命令。 例如:url?command = ls 尝试查看.htaccess文件....它可以解决这个问题..