我已经配置了我的第一个可公开访问的 nginx 服务器。我已将其配置为使用 /tmp/nginx 文件夹来存储临时文件。这包括 http 请求的主体、代理文件等。/tmp 文件夹位于具有 nosuid、noexec 和 nodev 权限的外部分区上。这种配置有潜在危险吗?
在 /tmp/ 文件夹中存储网络服务器临时文件有什么危险?
信息安全
php
Unix
文件系统
权限
nginx
2021-08-11 17:20:55
2个回答
最大的担忧是攻击者可以使用临时目录来存储可执行代码,这在利用您的系统时是一个有用的立足点。/tmp 几乎总是具有非常开放的权限,因此任何进程都可以写入它们(chmod 777)。例如,在绕过 AppArmor时,我利用 /tmp 的这个属性,使用与 MySQL 的 into outfile 链接的 Local File Include 漏洞在 PHP-Nuke 中获取远程 codex 执行。文件上传通常也存储在 /tmp 中,在 PHP 中也可以将LFI 漏洞转化为远程代码执行。
无论平台如何,您都必须采用两种许可策略。合理的是,攻击者将使用您的应用程序来对付您,并且受到应用程序可以执行的操作的限制。
Web 应用程序绝不能对 Web 根目录中的任何文件或文件夹或任何应用程序的可执行文件具有写访问权。攻击者将使用它来引入后门或对客户端执行驱动下载攻击。
Web 应用程序绝不能执行不在应用程序目录中的文件中的代码。 从不使用
eval()
,它通常是一个肮脏的快捷方式,并导致远程代码执行。在 PHP 中,您可以设置open_basedir配置选项,使其只能包含应用程序目录中的文件。您还可以使用hardened-php禁止访问 eval() 和其他 可利用的 php 函数。
如果盒子上的其他用户可以访问盒子的 tmp 文件夹,它可能会产生安全隐患。
如果其他人有权访问,他们可能会读取 tmp 文件夹,提取会话 id 然后劫持它。
tmp 文件夹应仅限于网络服务器。
其它你可能感兴趣的问题