在本实验中,我们将对 Web 服务器发起 Shellshock 攻击。许多 Web 服务器都用了 CGI,这是 Web 应用程序中生成动态内容的常用方法。许多 CGI 程序是 shell 脚本,因此在 CGI 程序运行之前,shell 程序会先运行。这种调用是由远程计算机的用户触发的,如果该 shell 程序是一个存在漏洞的 bash 程序,那么我们就可以利用 Shellshock 漏洞来获取服务器上的权限。
在我们的 Web 服务器中已经设置了一个非常简单的 CGI 程序 vul.cgi), 它是个 shell 脚本,功能就是打印出 "Hello World"。该 CGI 程序放在 Apache 的默认 CGI 文件夹/usr/lib/cgi-bin 中,它必须设置成可执行的。
#!/bin/bash_shellshock
echo "Content-type: text/plain"
echo
echo
echo "Hello World"
该 CGI 程序使用 /bin/bash_shellshock(第一行),而不是使用/bin/bash。这一行指定应当调用哪个 shell 程序来运行脚本。在本实验中,我们需要使用有漏洞的 bash 程序。
要从 Web 访问 CGI 程序,我们可以通过浏览器输入以下URL: http://www.seed-server.com/cgi-bin/vul.cgi, 或者使用以下命令行程序 curl 来执行相同操作。
$ curl http://www.seed-server.com/cgi-bin/vul.cgi