我很好奇是否可以在存在 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 上的这个答案更多细节。