首页 > 代码库 > 关于AfterShock–CVE-2014-7169 测试脚本的解释

关于AfterShock–CVE-2014-7169 测试脚本的解释

脚本的解析

env X=() { (a)=>\‘ sh -c "echo date"; cat echo

(1)

X=‘() { (a)=>\’ 这个不用说了,定义一个X的环境变量。但是,这个函数不完整啊,是的,这是故意的。另外你一定要注意,\’不是为了单引号的转义,X这个变量的值就是 () { (a)=>\

(2)

其中的 (a)=这个东西目的就是为了让bash的解释器出错(语法错误)

(3)

语法出错后,在缓冲区中就会只剩下了 “>\”这两个字符

(4)

于是,这个神奇的bash会把后面的命令echo date换个行放到这个缓冲区中,然后执行

(5)

后面的 cat echo是查看文件echo的内容

(6)

执行相当于 >\

其中的 \ 在Shell中相当于换行

(7)

相当于 >echo date

(8)重定向(在Shell中 >A B 相当于 B > A)

相当于 date > echo 生成echo文件

(9)结束

 

关于AfterShock–CVE-2014-7169 测试脚本的解释