Bash漏洞简析
文章目录
来分析学习一下之前很火的bash漏洞。
先来个简单的测试
|
|
如果输出Vulnerable this is a test
说明存在漏洞。
bash的环境变量
定义一个环境变量
|
|
bash的函数
定义一个函数
|
|
bash的漏洞
bash的变量和函数用了一模一样的机制,用env命令会看到上面定义的变量和函数
|
|
事实上,bash判断一个环境变量是不是一个函数,就看它的值是否以”()“开始!
如果定义了这样的环境变量
|
|
当我们在当前的bash shell进程下产生一个bash的子进程时,新的子进程会读取父进程的所有export的环境变量,并复制到自己的进程空间中,很明显,上面的X变量的函数的后面还注入了一条命令:echo “outside X”
|
|
于是就触发了bash的bug——函数体外面的代码被默认地执行了。