아파치의 /tmp는 어디에 있습니까?

아파치의 /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(사이트가 아닌) 서버 터미널에서 이 명령을 실행하려고 하면 아무 일도 일어나지 않습니다.

아파치와 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

이는 PrivateTmp라는 systemd의 기능에서 비롯됩니다.

/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

내 접근 방식은 실행 중인 아파치 프로세스의 PID를 찾는 것이었습니다.

ps ax | fgrep http

합리적으로 보이는 일부 PID 번호를 왼쪽 열에서 살펴보십시오. 그런 다음 /tmp 디렉토리는 /proc의 PID 경로를 통해 액세스됩니다. 이는 약간 보기 흉하지만 이 시스템 버전을 망칠 수 있는 새롭고 흥미로운 방법을 누가 찾았는지 알아내는 시간을 절약해 줍니다.

ls -l /proc/12345/root/tmp

httpd 프로세스에서 볼 수 있는 파일입니다.

관련 정보