Gio*_*oni 80 security bash cgi
如何确保我的 Bash 安装在更新后不再受到ShellShock错误的影响?
Beo*_*e42 83
检查 CVE-2014-6271 漏洞
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
Run Code Online (Sandbox Code Playgroud)
它不应该回应脆弱这个词。
/tmp/echo你可以在之后删除的文件,并且需要在再次测试之前删除)
cd /tmp; env X='() { (a)=>\' bash -c "echo date"; cat echo
Run Code Online (Sandbox Code Playgroud)
它应该说日期这个词,然后用类似的消息抱怨cat: echo: No such file or directory。相反,如果它告诉您当前日期时间是什么,那么您的系统很容易受到攻击。
bash -c 'true <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF' || echo "CVE-2014-7186 vulnerable, redir_stack"
Run Code Online (Sandbox Code Playgroud)
它不应该回显文本CVE-2014-7186 vulnerable, redir_stack。
(for x in {1..200} ; do echo "for x$x in ; do :"; done; for x in {1..200} ; do echo done ; done) | bash || echo "CVE-2014-7187 vulnerable, word_lineno"
Run Code Online (Sandbox Code Playgroud)
它不应该回显文本CVE-2014-7187 vulnerable, word_lineno。
env HTTP_COOKIE="() { x() { _; }; x() { _; } <<`perl -e '{print "A"x1000}'`; }" bash -c "echo testing CVE-2014-6277"
Run Code Online (Sandbox Code Playgroud)
这个的通过结果是它只回显文本testing CVE-2014-6277。如果它运行 perl 或者它抱怨没有安装 perl,那肯定是失败的。我不确定任何其他故障特征,因为我不再有任何未打补丁的系统。
env HTTP_COOKIE='() { _; } >_[$($())] { echo hi mom; id; }' bash -c "echo testing CVE-2014-6278"
Run Code Online (Sandbox Code Playgroud)
这个测试的一个通过是它应该只回显文本testing CVE-2014-6278。如果你的回声hi mom在任何地方都肯定是失败的。
Gio*_*oni 32
导出一个特别制作的环境变量,该变量将由 Bash 的易受攻击版本自动评估:
$ export testbug='() { :;}; echo VULNERABLE'
Run Code Online (Sandbox Code Playgroud)
现在执行一个简单的 echo 以查看 Bash 是否会评估 $testbug 中的代码,即使您自己没有使用该变量:
$ bash -c "echo Hello"
VULNERABLE
Hello
Run Code Online (Sandbox Code Playgroud)
如果它显示“VULNERABLE”字符串,答案是显而易见的。否则,您无需担心,您的 Bash 补丁版本就可以了。
请注意,主要的 Linux 发行版已经发布了多个补丁,有时它们并不能完全修复漏洞。继续检查安全公告和CVE 条目以了解此错误。