标签: shellshock-bash-bug

是否记录了Bash中的Shellshock漏洞背后的行为或者是故意的?

最近披露Bash如何解释环境变量的漏洞CVE-2014-6271.该漏洞依赖于Bash将一些环境变量声明解析为函数定义,但随后继续按照定义执行代码:

$ x='() { echo i do nothing; }; echo vulnerable' bash -c ':'
vulnerable
Run Code Online (Sandbox Code Playgroud)

但我不明白.我在Bash手册中找不到任何关于将环境变量解释为函数的内容(除了继承函数,这是不同的).实际上,正确命名的函数定义只被视为一个值:

$ x='y() { :; }' bash -c 'echo $x'
y() { :; }
Run Code Online (Sandbox Code Playgroud)

但腐败的人什么都不打印:

$ x='() { :; }' bash -c 'echo $x'

$ # Nothing but newline
Run Code Online (Sandbox Code Playgroud)

损坏的函数是未命名的,因此我不能只调用它.这个漏洞是一个纯粹的实现错误,还是这里有一个预期的功能,我看不到?

更新

Per Barmar的评论,我假设函数的名称是参数名称:

$ n='() { echo wat; }' bash -c 'n'
wat
Run Code Online (Sandbox Code Playgroud)

我之前发誓我可以发誓,但我想我没有努力.它现在可以重复了.这是一个更多的测试:

$ env n='() { echo wat; }; echo vuln' bash -c 'n'
vuln …
Run Code Online (Sandbox Code Playgroud)

security bash function environment-variables shellshock-bash-bug

56
推荐指数
3
解决办法
5199
查看次数

19
推荐指数
1
解决办法
1万
查看次数

Shellshock漏洞,CVE-2014-7169

这个ycombinator线程说明了这一点

env X='() { (a)=>\' sh -c "echo date"
Run Code Online (Sandbox Code Playgroud)

允许您删除第一个令牌,然后运行结果,将输出发送到已删除的令牌.我可以看到魔法在这个() { (a)=>\'部分,但这是一个很难找到的东西,所以如果有人能够解释内部的运作方式会很棒.

在链接的可能重复的问题中,变量通过使用导出到环境变量,

env X="() { :;} ;
Run Code Online (Sandbox Code Playgroud)

这真的不一样

env X='{ (a)=>\'
Run Code Online (Sandbox Code Playgroud)

这是我试图了解其运作的部分.那么,这些(a)=>\'零件做什么?很明显,它正在做一些非常相似的事情,但不同之处在于它绕过了这个漏洞的第一个补丁,请参阅chepner的评论.

linux bash shellshock-bash-bug

18
推荐指数
0
解决办法
840
查看次数

CVE-2014-7169如何运作?测试代码的细分

有一个bash版本已被修补shellshock

$ bash --version
GNU bash, version 3.2.52(1)-release (x86_64-apple-darwin12)
Copyright (C) 2007 Free Software Foundation, Inc.

$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test
Run Code Online (Sandbox Code Playgroud)

另一个类似的漏洞利用仍然有效,并已被分配到CVE-2014-7169

$ env X='() { (a)=>\' bash -c "echo date"; cat echo
bash: X: line 1: syntax error near unexpected token `='
bash: X: line 1: `'
bash: error …
Run Code Online (Sandbox Code Playgroud)

bash exploit shellshock-bash-bug

12
推荐指数
1
解决办法
1428
查看次数

回归:导出的 Bash 函数经过另一个过程后丢失

从 Ubuntu 14.04 迁移到 16.04 时,我注意到我的几个 Bash 脚本由于缺少导出的函数而失败。我想知道这是否与Shellshock 错误的修复有关,即使我只是简单export -f的函数,而不是依赖 Bash 内部函数表示。失败不会发生在直接的 Bash 子 shell 中,只有在两者之间有另一个进程时才会发生。例如,Bash 调用 awk / Perl / Vim 调用另一个 Bash。下面是一个 Perl 的例子:

好的

$ foo() { echo "foobar"; }
$ export -f foo
$ export -f; foo
foo ()
{
    echo "foobar"
}
declare -fx foo
foobar
$ bash -c "export -f; foo"
foo ()
{
    echo "foobar"
}
declare -fx foo
foobar
$ perl -e 'system("bash -c \"export -f; foo\"")'
foo …
Run Code Online (Sandbox Code Playgroud)

bash shellshock-bash-bug dash-shell

5
推荐指数
1
解决办法
311
查看次数

在环境中设置Bash功能

我需要从C/C++程序在Bash环境中定义一个Bash函数.在shellshock bug 之前,我可以用这种方式定义一个函数:

my_func='() { echo "This is my function";}'
Run Code Online (Sandbox Code Playgroud)

或等同于C程序:

setenv("my_func", "() { echo \"This is my function\";}", 1);
Run Code Online (Sandbox Code Playgroud)

要么

putenv("my_func=() { echo \"This is my function\";}");
Run Code Online (Sandbox Code Playgroud)

但是使用修复了shellshock的Bash版本,我无法管理如何在环境中定义我的函数.

奇怪的是,如果我运行env,我可以看到我在环境中定义的函数,但如果我调用它,Bash说它不存在.

提前致谢

linux bash environment-variables setenv shellshock-bash-bug

4
推荐指数
2
解决办法
3127
查看次数

我很难理解Shellshock漏洞验证

我在检查Shellshock漏洞时得到了这个:

host1:~$ env x='(){ :;}; echo vulnerable' bash -c "echo hello"
hello
host1:~$ env x='() { :;}; echo vulnerable' bash -c "echo hello"
vulnerable
hello
host1:~$
Run Code Online (Sandbox Code Playgroud)

怪啊?

linux security bash shellshock-bash-bug

3
推荐指数
1
解决办法
933
查看次数

有人可以解释Shell Shock Bash代码吗?

我在理解以下代码时遇到了问题,这是Shell Shock的"漏洞证明"代码.有人可以向我解释一下吗?特别是这部分" () { :;};"

env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
Run Code Online (Sandbox Code Playgroud)

unix linux bash ubuntu shellshock-bash-bug

3
推荐指数
1
解决办法
585
查看次数

如何在FreeBSD上检查和升级Bash - 与Shellshock bug有关

我今天早上上班时读到了通过特制环境变量(CVE-2014-6271)的文章A Bash Code Injection Vulnerability.我已经在我负责的大多数系统上更新了Bash,但是,我被要求在几个FreeBSD服务器上升级Bash .

如何检查FreeBSD上运行的Bash版本以及如何修补它以摆脱此漏洞?

bash shell freebsd shellshock-bash-bug

2
推荐指数
1
解决办法
7973
查看次数

BASH bug对Azure网站,云服务和SQL数据库的影响?

刚刚阅读了这个可能严重的基于Linux的错误.看起来Azure应该是安全的,因为基于Windows,并且很可能很快修补,因为这就是我们使用平台即服务(PAAS)的原因.

对于任何想知道这一切是什么的人,Try Hunt都有一篇很好的文章:Troy Hunt的文章

任何人对这个或指针的任何评论?

谢谢.

azure azure-web-sites shellshock-bash-bug azure-sql-database

2
推荐指数
1
解决办法
395
查看次数

bash漏洞CVE-2014-6271.它会影响我的CGI perl脚本吗?怎么理解这个?

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

我的代码是否会以恶意方式受到影响 - 我的代码需要做些什么才能受到影响?我应该检查什么来验证这一点?

security bash shellshock-bash-bug

1
推荐指数
1
解决办法
2260
查看次数