以 (){ :;};/bin/bash 开头的 HTTP 引用者针对什么漏洞

信息安全 注射 炮击 重击
2021-08-17 11:01:35

我在我的 apache 错误日志的 referer 字段中找到了这段代码,然后是几个 bash 命令从 Web 下载和运行有效负载。该攻击似乎通过将命令名称转换为空函数体的函数名称来起作用,(){ :; }.

这显然是在尝试执行 bash 命令注入。哪些服务器、配置或模块可能容易受到这种攻击?

2个回答

这是针对 Shellshock 错误(甚至有自己的标签):

GNU Bash 到 4.3 处理环境变量值中函数定义之后的尾随字符串,这允许远程攻击者通过精心设计的环境执行任意代码,如涉及 OpenSSH sshd 中的 ForceCommand 功能、Apache 中的 mod_cgi 和 mod_cgid 模块的向量所示HTTP 服务器,由未指定的 DHCP 客户端执行的脚本,以及设置环境发生在 Bash 执行的特权边界的其他情况。

受影响的是任何运行易受攻击的 Bash 版本和攻击者注入环境变量的方式的系统。最著名的案例是 Apache,它自动从请求中设置某些环境变量。你不需要 Bash CGI。有关详细列表,请参阅有关Shell Shock Exploitation Vectors的文章。

为了防御这种攻击,您必须更新您的 Bash。要测试您的 Bash 版本是否易受攻击,您可以从@EliahKagan 的最佳答案中执行以下行:

x='() { :;}; echo VULNERABLE' bash -c :

有关更多信息,请参阅您需要了解的有关 Shellshock Bash 错误相应 CVE的所有信息。

它看起来像一个远程命令执行负载。远程命令执行漏洞用于以与 Web 服务器用户相同的权限运行系统命令。它导致服务器的全面妥协。查看有关此的 owasp 文章以获取更多信息。