问题描述
我将服务器配置为cPanel,CloudLinux,LiteSpeed,CWAF,CageFS,CXS。
我所有的服务都运行顺利。
但是,我可以从一个用户创建cronjob并象征性地访问其他用户的文件。
例如,我可以通过将cron如下添加到user1来读取user2的public_html文件夹中的config.PHP文件。
ln -s /home/user2/public_html/config.PHP config.txt
以这种方式运行cron时,user1上会出现config.txt形式的快捷方式。当我们查看此config.txt文件时,将显示user2上config.PHP文件的内容。
这是一个非常大的漏洞,我该如何预防?
我的英语不好。原谅我。
谢谢
解决方法
创建符号链接后,您究竟如何读取此文件?因为它不适用于我测试过的任何cPanel服务器。
另外,cronjob是作为用户执行的,所以我不确定这将如何允许升级,因为无论如何它都类似于在shell中执行。
如果您位于user1
的监狱(su - user1
)内,请添加cronjob,例如:
0 * * * * ln -s /home/user2/public_html/wp-config.php /home/user1/config.txt
无论何时实际创建符号链接,然后将cat /home/user1/config.txt
用作user1
,您最终都会得到“没有这样的文件或目录”:
cat: config.txt: No such file or directory
为什么?因为创建的符号链接指向的文件不存在(在CageFS中)。
但是,如果您绝对确定有可能(尽管无法复制它),请向CloudLinux报告,因为显然这是他们必须解决的问题。
哎呀,我很惊讶您没有与他们先创建票证,而是决定去Stackoverflow提出问题。