是否可以利用 shellshock 错误以特权用户身份运行命令?

是否可以利用 shellshock 错误以特权用户身份运行命令?

我很好奇是否可以在存在 Shellshock bug 的系统/服务器上执行以下命令:

curl -H "User-Agent: () { :; }; sudo /bin/eject" http://example.com/

(此代码是此处示例的详细版本:http://blog.cloudflare.com/inside-shellshock/

据我了解,该错误将允许人们将代码注入系统,但不一定以提升的权限执行代码。如果这是不可能的,是否有另一种方法可以注入代码以赋予黑客 root 权限?

不需要示例,我只是好奇这个错误可能造成的损害程度。

**我没有恶意,只是出于好奇而问。

答案1

 curl -H "User-Agent: () { :; }; sudo /bin/eject" http://example.com/

行不通,因为找不到sudo

 curl -H "User-Agent: () { :; }; /usr/bin/sudo /bin/eject" http://example.com/

会设法调用sudo,但除非管理员已配置sudo为允许运行 Web 服务器的用户运行任何命令root(这将是最不明智的事情),否则它不会做太多事情。

即使远程服务器允许 Web 服务器用户运行特定命令root,首先,您需要猜测它是什么,然后即使它是一个bash脚本,HTTP_USER_AGENT 环境变量也不会传递给它,即使sudo被配置为env_reset禁用,因为sudo始终将内容以 开头的变量列入黑名单()

虽然可以想象一些场景,但不存在常见的shellshock 用于本地权限提升的方式。看security.stackexchange 上的这个答案更多细节。

相关内容