试图找出用户'_www'在我的OS X服务器上拥有的权限。我需要找出它是否具有root访问权限,是否可以访问任何系统文件,或者它是否可以简单地访问Writes的标准顶级“Websites”目录。
答案 0 :(得分:3)
好的,您可以查看/etc/group
以查看_www
所属的群组:
$ grep _www /etc/group
_www:*:70:_devicemgr,_teamsserver
在正确配置的服务器上,将Web服务器作为专用用户运行的重点是将该用户的权限限制在其他位置。但是,访问文件系统的Web应用程序代码能够在服务器的DocumentRoot外部读取。
因此,任何不属于_www
但其具有读取权限并在文件的父目录上执行的文件理论上可以由_www
读取,如果应用程序代码不能防止在阅读文件系统时。同样,如果应用程序代码提供对它们的访问,则Web服务器可以修改文件系统上的其他可写文件。
当应用程序使用用户输入生成用于读取或写入的文件路径时,此类问题可被利用,但无法防止输入,如:../../../../../../../../../
,当可能与NULL byte injection结合时可能产生应用程序中的文件名,如
/www/application/phptemplates/../../../../../../../../../../etc/passwd
当然,在现代系统中,/etc/passwd
实际上并不存储密码,但它可能会向潜在的攻击者透露本地用户和其他有价值的信息。