apache 的 /tmp 位于哪里?

apache 的 /tmp 位于哪里?

我只是被建议重新提出我的问题https://security.stackexchange.com/questions/72795/command-execution-dvwa-creating-file-in-tmp这里。

我使用 CentOS 7,我试图了解命令执行攻击。我找到了一个教程,其中描述了创建文件的任务。只需使用

cat /etc/passwd | tee -a /tmp/passwd

应该创建/etc/passwd.确实如此(cat /tmp/passwd从同一个地方运行,我运行上一个命令的结果正是我所期望的)。但是/tmp/passwd,如果我尝试从服务器的终端(而不是从站点)运行此命令,则不会出现任何情况。

我没有对 apache 和 php 进行设置。

我应该去哪里寻找失踪者/tmp/passwd

正如@terdon 所问:

mount | grep tmp

将返回:

devtmpfs on /dev type devtmpfs (rw,nosuid,size=1966708k,nr_inodes=491677,mode=755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /sys/fs/cgroup type tmpfs (rw,nosuid,nodev,noexec,mode=755)
tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755)
/dev/sda7 on /tmp type xfs (rw,relatime,attr2,inode64,noquota)
/dev/sda7 on /var/tmp type xfs (rw,relatime,attr2,inode64,noquota)

答案1

它来自 systemd 的一个名为 PrivateTmp 的功能。

/var/tmp/systemd-private-*

用于在文件中设置选项/var/tmp的服务。PrivateTmp.service

/tmp/systemd-private-*

/tmp为了服务。

如果httpd写入一些东西/tmp,它就会在 中/tmp/systemd-private-*-httpd.service-*

/tmp和之间的区别/var/tmp

/var/tmp 目录可供需要在系统重新引导之间保留临时文件或目录的程序使用。因此,存储在 /var/tmp 中的数据比 /tmp 中的数据更持久。

系统启动时不得删除 /var/tmp 中的文件和目录。虽然 /var/tmp 中存储的数据通常以特定于站点的方式删除,但建议删除的频率低于 /tmp。

答案2

在 Fedora 20 中,您要查找的目录位于其中一个(可能是多个)/var/tmp/systemd-private-${FOO}文件夹中。我还无法在 RHEL 7 或 CentOS 7 系统上验证这一点,但我强烈怀疑它会在同一/var/tmp/systemd-private-${FOO}区域。

答案3

我的方法是找到正在运行的apache进程的PID

ps ax | fgrep http

在左侧栏中查找一些看似合理的 PID 编号。然后通过 /proc 的 PID 路径访问 /tmp 目录,这有点难看,但可以节省时间来弄清楚谁找到了一个新的、令人兴奋的方法来搞乱这个版本的系统。

ls -l /proc/12345/root/tmp

这些是 httpd 进程看到的文件。

相关内容