3 回答

TA貢獻1775條經驗 獲得超8個贊
這是一種情況:
您擁有用戶可以上傳到的不受保護的目錄。
他們上傳了兩個文件:一個shell腳本和一個其中
system()
調用了shell腳本的php文件。他們通過訪問瀏覽器中的URL來訪問剛上傳的php腳本,從而使shell腳本得以執行。
如果此目錄為777,則意味著任何人(包括用戶apache,即將執行php腳本的人)都可以執行它!如果未在該目錄上設置執行位,并且未在該目錄內的文件上設置執行位,則上述第3步將無效。
從注釋中進行編輯:無關緊要的是PHP文件的權限,它是system()
PHP文件內部的調用,將由linux用戶apache(或您設置為運行的apache的任何東西)作為linux系統調用執行。恰好在執行位很重要的地方。

TA貢獻1801條經驗 獲得超8個贊
這大大增加了您的網站針對惡意活動的漏洞配置文件,因為只需要闖入一個帳戶即可。
任何通過任何登錄名即可訪問系統的人都可以對您的頁面執行任何操作,包括將其更改為“此網站確實不安全,請給我您的信用卡信息”。
編輯:(以澄清和解決評論)
許多服務器在生活中具有多個目的。他們運行多種服務。如果通過為每個服務分配一個唯一的用戶并相應地管理文件權限來仔細地將這些服務彼此隔離,是的,如果有人破壞了帳戶的憑據,您仍然處于困境中,但是它們所造成的損害僅限于該服務。如果您只有一個通用帳戶并將整個文件系統設置為777,則一個受到破壞的帳戶會危害計算機上的所有內容。
如果您的服務器專用于僅運行Apache / PHP,并且在生活中沒有其他用途,并且只有一個帳戶正在運行Apache / PHP,則破壞一個帳戶與使整個計算機不受破壞一樣好。從您的應用程序的角度來看(盡管您仍然應該使用運行PHP的帳戶來保護和禁止寫系統文件,但是對于管理員帳戶/ root用戶仍然應該可以使用)。
如果他們可以編寫文件并且可以執行,則可以將其更改為在您的計算機上執行的文件(可執行文件或腳本),然后使用PHP的shell_exec運行該可執行文件。如果您配置為不允許shell_exec,則他們也可以更改您的配置

TA貢獻2039條經驗 獲得超8個贊
在權限方面遵循極簡主義有很多很好的一般原因,但是在LAMP虛擬主機的情況下,容易想到的是
在共享主機平臺上,共享您的主機的其他用戶現在可以讀取和寫入您的腳本。
在專用主機上,流氓進程可以讀取/寫入并意外刪除您的文件。假設有一個自定義日志記錄進程在后臺運行,但用戶nobody的錯誤導致嘗試這樣做
rm -rf /
?,F在通常這將是無害的,因為幾乎不會有任何文件沒有人具有寫許可權,但是此流氓過程現在會將文件隨身攜帶。要破壞您的網站,某人只需以任何用戶的身份獲得訪問權限,甚至可以說一個
nobody
或類似的虛擬帳戶。通常,攻擊者必須進行進一步的用戶級別升級攻擊,才能到達可能造成一定損害的地方。這是一個真正的威脅。某些非關鍵服務可能正在虛擬帳戶下運行,并且可能包含漏洞。
- 3 回答
- 0 關注
- 1065 瀏覽
添加回答
舉報