web580笔记(CVE-2014-6271-Bash远程代码执行漏洞“破壳”(CVE-2014-6271))

https://www.antiy.com/response/CVE-2014-6271.html
漏洞分析
目前的bash使用的环境变量是通过函数名称来调用的,导致漏洞出问题是以“(){”开头定义的环境变量在命令ENV中解析成函数后,Bash执行并未退出,而是继续解析并执行shell命令。核心的原因在于在输入的过滤中没有严格限制边界,没有做合法化的参数判断。

从阐述的漏洞原理可知,漏洞的根本原因存在于bash的ENV命令实现上,因此漏洞本身是不能够直接导致远程代码执行的。如果达到远程代码执行的目的,必须要借助第三方服务程序作为媒介才能够实现,第三方服务程序也必须要满足众多条件才可以充当此媒介的角色。例如,第三方服务程序apache2便可充当此媒介,其CGI组件满足远程访问并调用bash的ENV命令进行访问数据解析功能。具体如何实现,见下面的原理图:CVE-2014-6271漏洞实现远程代码执行原理图。


在请求头中加入以下Payload:
x: () { :; }; echo; /bin/cat /f*

 

posted @ 2025-06-05 12:14  justdoIT*  阅读(71)  评论(0)    收藏  举报