
PHP를 사용하여 shell_exec
명령을 실행합니다.
echo password | sudo -S mount.cifs //192.168.1.15/Share /share -o username=root,password=password
HTTPD 사용자에게 sudo-pivilege가 부여되고 명령이 오류 없이 성공적으로 실행됩니다. mount
명령을 사용하여 설치 위치를 확인한 후 몇 가지 흥미로운 결과를 얻었습니다.
mount
PHP를 통해 실행되는 명령은shell_exec
CIFS 디렉터리를 표시하며 SAMBA 서버에서 HTTP 서버로 파일과 폴더를ls
전송할 수 있습니다.cp
그러나 HTTP 서버에 SSH로 연결하여 실행하면
mount
CIFSroot
디렉터리가 존재하지 않습니다./share
웹쉘에서 동시에 디렉토리에 접근할 수 없습니다 .mount
HTTPD 서비스를 다시 시작하고 웹 셸에서 명령을 다시 실행하면 디렉터리가 마운트됩니다.사라졌다. 웹 셸에 보이는 것은 일시적인 프로세스인 것 같습니다.그러기 위해서는
mount
두 번 사용하고web shell
두 번 사용하고system shell
다른 시스템의 설치 목록에 영향을 주지 않으면umount
서 두 개의 별도 시스템처럼 만들 수 있습니다.역순으로 하면
system shell
먼저 -> 입니다web shell
. 전혀 놀랄 일이 아닙니다.
왜 이런 일이 발생하며 웹 셸을 사용하여 시스템에 이를 표시하려면 어떻게 해야 합니까?