无法对所有文件利用 shellshock 漏洞
Can not exploit shellshock vulnerability for all files
我一直在尝试利用我系统中的 Shellshock 漏洞 运行 解决一个有趣的问题。我一直在使用 'wget' 来利用该漏洞。我使用的命令如下:
wget -U "() { test;};echo \"Content-type: text/plain\"; echo; echo; /bin/cat /etc/passwd" http://somesite.com/some-script.cgi
使用上述命令,漏洞显示如预期。但是,当我尝试 wget 一个不是 .cgi 文件的文件时,该漏洞没有显示出来,只下载了该文件。
据我了解,wget 应该将 User-Agent 字符串设置为命令中传递的值,该值应该 运行 代码 /bin/cat /etc/passwd
我看不出这有什么关系正在下载的文件的性质。
提前致谢。
为了利用 shellshock bug,需要执行以下步骤:
您必须让目标服务器将特定字符串注入 environment variable,并且
设置环境变量后,目标必须(直接或间接)启动(易受攻击的版本)bash shell.
发生这种情况的一种方式是,当网络服务器通过 Common Gateway Interface (CGI) 执行外部程序时,外部程序要么是 bash shell 脚本,要么调用 bash。发生这种情况是因为 CGI 协议指定来自原始 HTTP 请求的 headers 被传递到带有前缀 HTTP_
的环境变量中的外部程序(例如 HTTP_USER_AGENT
代表 User-Agent header).由于攻击者可以控制那些header,他们也可以直接控制那些环境变量的值。
但是,Web 服务器需要在通过 CGI 调用外部程序时仅设置这些环境变量。传递静态文件时,服务器只需要从磁盘中读取该文件并将其发送回客户端即可;它不需要设置任何环境变量或调用任何外部工具,如 bash.
我一直在尝试利用我系统中的 Shellshock 漏洞 运行 解决一个有趣的问题。我一直在使用 'wget' 来利用该漏洞。我使用的命令如下:
wget -U "() { test;};echo \"Content-type: text/plain\"; echo; echo; /bin/cat /etc/passwd" http://somesite.com/some-script.cgi
使用上述命令,漏洞显示如预期。但是,当我尝试 wget 一个不是 .cgi 文件的文件时,该漏洞没有显示出来,只下载了该文件。
据我了解,wget 应该将 User-Agent 字符串设置为命令中传递的值,该值应该 运行 代码 /bin/cat /etc/passwd
我看不出这有什么关系正在下载的文件的性质。
提前致谢。
为了利用 shellshock bug,需要执行以下步骤:
您必须让目标服务器将特定字符串注入 environment variable,并且
设置环境变量后,目标必须(直接或间接)启动(易受攻击的版本)bash shell.
发生这种情况的一种方式是,当网络服务器通过 Common Gateway Interface (CGI) 执行外部程序时,外部程序要么是 bash shell 脚本,要么调用 bash。发生这种情况是因为 CGI 协议指定来自原始 HTTP 请求的 headers 被传递到带有前缀 HTTP_
的环境变量中的外部程序(例如 HTTP_USER_AGENT
代表 User-Agent header).由于攻击者可以控制那些header,他们也可以直接控制那些环境变量的值。
但是,Web 服务器需要在通过 CGI 调用外部程序时仅设置这些环境变量。传递静态文件时,服务器只需要从磁盘中读取该文件并将其发送回客户端即可;它不需要设置任何环境变量或调用任何外部工具,如 bash.