www-data(PHP)下的用户是否仅通过知道 root 密码就可以提升权限

www-data(PHP)下的用户是否仅通过知道 root 密码就可以提升权限

场景是带有 Web 服务器的 Ubuntu 系统:

  • SSH 已禁用
  • 用户没有任何终端访问权限
  • UFW 仅允许 HTTP 和 HTTPS
  • PHP 和 Apache 在 www-data 下运行
  • www-data 未添加到 suedors

考虑到系统中上传了 php shell 的用户,该用户是否只需要知道 root 密码就可以提升权限?考虑到 system() 函数只能在 www-data 下运行 shell 命令。

答案1

默认情况下,除非您弄乱了它,否则 Ubuntu 没有“root密码”。这不是空密码,而是(读取)中没有明文(输入)密码加密的
“加密密码” 。Ubuntu 使用()执行系统管理任务。/etc/passwdman 5 passwd
sudoman sudo sudoers

Unix/Linux 上的密码检查工作方式如下:检查过程从用户/etc/passwd输入的加密密码字段中提取三部分数据:1) 实际的加密密码;2) 用于加密密码的加密算法;3) “盐”,用于增加随机性的量。然后,它使用相同的加密算法和“盐”加密您提供的(纯文本)密码。如果加密结果与实际加密密码相同,则您输入的密码正确。
通过将加密密码设置为永远不会由任何密码加密产生的字符串,可以防止登录。
当然,如果知道 的密码,www-data也可以。su otheruserotheruser

相关内容