我在 Windows 8.1 机器上使用 Git Bash。
我需要担心吗Shellshock
?
答案1
自己测试一下很简单。
CVE-2014-6271
CVE-2014-6271 是最初的 shellshock 漏洞。要查看您是否受此漏洞影响,请在 bash 命令提示符下运行此代码:
env VAR='() { :;}; echo Bash is vulnerable!' bash -c "echo Bash Test"
如果输出是:
Bash Test
那你就没问题了。另一方面,如果你看到:
Bash is vulnerable!
Bash Test
那么你的bash
电脑就很脆弱。
CVE-2014-7169
有一个较新的相关漏洞。要测试这一点,请运行以下代码:
env X='() { (a)=>\' sh -c "echo date"; cat echo
如果你看到以下输出:
date
cat: echo: No such file or directory
那你就没事了。
所有版本的 bash 都存在漏洞,直到 4.3 版(即当前版本)。由于补丁不断更新,更新您的版本可能是个好主意。
谁是脆弱群体?
根据 Qualys,偏僻的在下列情况下可能会利用 shellshock:
- 如果 CGI 脚本是用 bash 编写的,或者生成子 shell,则使用 mod_cgi 或 mod_cgid 的 Apache 服务器会受到影响。C 中的 system/popen、Python 中的 os.system/os.popen、PHP 中的 system/exec(在 CGI 模式下运行时)和 Perl 中的 open/system(如果使用 shell,则取决于命令字符串)会隐式使用此类子 shell
- ForceCommand 用于 sshd 配置,为远程用户提供有限的命令执行能力。此漏洞可用于绕过该功能并提供任意命令执行。一些 Git 和 Subversion 部署使用此类受限 shell。OpenSSH 的常规使用不受影响,因为用户已经拥有 shell 访问权限。
- DHCP 客户端会调用 shell 脚本来配置系统,并使用从潜在恶意服务器获取的值。这将允许在 DHCP 客户端计算机上运行任意命令(通常以 root 身份运行)。
- 各种守护进程和 SUID/特权程序可以执行由用户设置/影响的环境变量值的 shell 脚本,这将允许运行任意命令。
- 任何其他挂接到 shell 或使用 bash 作为解释器运行 shell 脚本的应用程序。不导出变量的 shell 脚本不易受此问题影响,即使它们处理不受信任的内容并将其存储在(未导出的)shell 变量中并打开子 shell。
然而,要想在 Windows 上存在漏洞,就必须使用调用 的上述服务之一的版本bash
。