BASH是一个为GNU计划编写的Unix shell。Bash是与系统内核交互的窗口,用于执行用户输入的命令。
在GUN Bash 4.3 以及之前的版本在处理构造时存在安全漏洞,该漏洞可以由向环境变量值内添加精心构造的字符串来触发,攻击者可以利用此漏洞绕过限制执行shell命令。某些服务和应用允许未经身份验证的远程攻击者特工环境变量以利用此漏洞。此漏洞源于在调用bash shell之前可以用钩子的值创建环境变量,同时该变量可以包含命令代码,在shell被调用后会立刻执行。该漏洞极具危害。
漏洞原因:
当前Linux一定版本的bash通过以函数名作为环境变量名,以“(){”开头的字串作为环境变量的值来将函数定义导出为环境变量。
利用脚本:
输入:$ curl -A ‘() { :; }; /bin/cat /etc/passwd>dumped_filehttp://test.com/poc.cgi
输出:当在解析请求时,CGI标准会将User-Agent部分‘() { :; }; /bin/cat /etc/passwd>dumped_file’部分映射到环境变量,bash在解析这段字符串时,会触发漏洞,将/bin/cat /etc/passwd>dumped_file当成系统命令直接执行。
漏洞检测与防御:
漏洞检测:
SHELL输入:$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
SHELL输出:vulnerable
this is a test

结论:如有以上输出则存在该漏洞。
影响版本:
Bash <= 4.3

漏洞的防御:
请及时更新天融信入侵防御与检测规则库至最新版本。
同时升级Linux操作系统BASH
RedHat、Centos版本:yum update -y bash;
Ubuntu、debian版本: apt-get update;apt-get install bash。
其他版本:请下载相应的升级文件或源代码进行重新编译安装。
有人模仿我们的网站请记住我们的唯一地址(www cnit5 com)为您提供以上文章内容。郑重声明:IT行业资讯网站刊登/转载此文出于传递更多信息之目的 ,并不意味着赞同其观点或论证其描述。本站不负责其真实性。



闽公网安备 35020602001684号