Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 使用目录遍历攻击执行命令_Linux_Security_Scripting_Directory Traversal - Fatal编程技术网

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

Linux 使用目录遍历攻击执行命令,linux,security,scripting,directory-traversal,Linux,Security,Scripting,Directory Traversal,是否有一种使用目录遍历攻击执行命令的方法 例如,我像这样访问服务器的etc/passwd文件 http://server.com/..%01/..%01/..%01//etc/passwd 有办法运行命令吗?像 http://server.com/..%01/..%01/..%01//ls 。。。。。并获得输出 这里要说清楚,我在我们公司的服务器上找到了vuln。我希望通过证明它可以让攻击者完全访问系统来提高风险级别(或给我加分),除非web服务器被完全不知道自己在做什么的人编程,试图使用它

是否有一种使用目录遍历攻击执行命令的方法

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

http://server.com/..%01/..%01/..%01//etc/passwd
有办法运行命令吗?像

http://server.com/..%01/..%01/..%01//ls
。。。。。并获得输出


这里要说清楚,我在我们公司的服务器上找到了vuln。我希望通过证明它可以让攻击者完全访问系统来提高风险级别(或给我加分),除非web服务器被完全不知道自己在做什么的人编程,试图使用它访问
ls
(假设它能正常工作)将导致您看到
ls
二进制文件的内容,而没有其他内容

这可能不是很有用。

编辑#2:我删掉了我的评论,因为它们被认为是讽刺和直率的。好的,现在随着更多的信息来自甘布卡,Apache with Fedora-你应该把它放在问题中-我建议:

  • 发布到Apache论坛,突出显示您正在运行最新版本的Apache并在Fedora上运行,并向他们提交该漏洞
  • 再次发布到Fedora论坛,突出显示您正在运行最新版本的Apache,并向他们提交该漏洞
  • 需要注意的是,在发布到两个站点的论坛时,将httpd.conf包含到这两个站点中
  • 要最小化对passwd文件的访问,研究在沙盒/chrooted环境中运行Apache,其中任何其他文件(如passwd)在沙盒/chrooted环境之外都是不可见的……您是否有一个备用的盒子来试验它,或者更好地使用VMWARE来模拟您用于Apache/Fedora的相同环境—尝试使其相同环境,并使httpd服务器在VMWare内运行,并远程访问虚拟机以检查漏洞是否仍然可见。然后对其进行chroot/sandbox处理,并再次运行该漏洞利用
  • 记录一步一步地复制它,并包括一个建议,直到找到一个修复程序,同时如果对运行在沙箱/chrooted环境中的Web服务器的影响最小,请推动他们这样做
希望这有帮助, 顺致敬意, Tom.

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


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


另一方面,如果您能够在调用(如popen、exec、system、shell_exec或变体)中使用用户输入(文件名)查看web应用程序产生的/etc/passwd中的条目,而无需进行充分的清理,那么您就可以执行任意命令。

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

run_init /etc/init.d/httpd restart

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

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

@gamBOOKa:请查看编辑后的问题。这澄清了我的立场。我不是保安,事实上,我们公司没有保安。所以我想解决这个问题。我的项目经理可能会忽略只读访问漏洞,而不是完全访问漏洞。@gAMBOOKa:Wow!一个漏洞-你在什么类型的服务器下运行会发生这种情况-向你的老板显示此页面,并用手指指向此页面查看…除非你告诉我们是哪台服务器…我们也许可以帮助你…我认为你应该把这一点放在你的问题中,你的服务器正在运行软件x。您将得到更好的响应……;)如果情况严重,您的项目经理应该听取您的意见,而不是将其视为“只读访问漏洞”……目录遍历攻击存在于我们使用的开源产品中。这不是一个愚蠢的系统管理问题。顺便说一句,我们在Fedora上运行最新版本的Apache。利用我们的web服务器至少会将passwd和shadow文件移交给攻击者,并向他们公开我们的源代码。我想知道如果有人利用此漏洞,你的老板会怎么说,你说“哦,我很久以前就知道了,但我没有告诉任何人,因为我想捏造它最初有多严重。”。