2010-02-14 76 views
3

有沒有辦法使用目錄遍歷攻擊來執行命令?使用目錄遍歷攻擊來執行命令

舉例來說,我訪問服務器的etc/passwd文件中像這樣

http://server.com/..%01/..%01/..%01//etc/passwd 

有沒有辦法運行一個命令呢?像...

http://server.com/..%01/..%01/..%01//ls 

.....並得到一個輸出?

爲了清楚起見,我在公司的服務器上發現了這個漏洞。我希望通過證明它可以讓攻擊者完全訪問系統來提高風險等級(或者獎勵積分)

回答

1

如果能夠查看/ etc/passwd中作爲文檔根或訪問目錄服務器上配置不正確的結果,則該漏洞的存在不會自動意味着你可以執行您選擇的命令。

另一方面,如果由於Web應用程序在諸如popen,exec,system,shell_exec或變體之類的調用中使用用戶輸入(文件名)而沒有適當的清理,可以查看/ etc/passwd中的條目,那麼你可能能夠執行任意命令。

0

除非網絡服務器被某人完全隱藏地編程,而不知道它們是什麼這樣做,試圖訪問ls使用(假設它甚至有效)將導致您看到ls二進制文件的內容,而沒有其他任何內容。

這可能不是很有用。

0

編輯#2:我編輯了我的評論,因爲他們被認爲是諷刺和鈍。好了,現在隨着越來越多的信息從gAMBOOKa這一點,阿帕奇在Fedora來了 - 你應該投入的問題 - 我建議:

  • 後到Apache的論壇,彰顯您正在運行最新版本的Apache和運行在Fedora上並將漏洞提交給他們。
  • 發佈到Fedora的論壇,再次強調你正在運行最新版本的Apache並將漏洞提交給他們。
  • 需要注意的是,在發佈到他們的論壇時,將httpd.conf包含到這兩個網站。
  • 爲了最大限度地減少對passwd文件的訪問,請查看在sandbox/chrooted環境中運行Apache,其中諸如passwd之類的任何其他文件在沙箱/ chrooted環境之外是不可見的......是否有一個備用方框躺着試驗它甚至可以更好地使用VMWARE來模擬Apache/Fedora使用的相同環境 - 嘗試將其設置爲IDENTICAL環境,並使httpd服務器在VMWare中運行,並遠程訪問虛擬機以檢查漏洞利用是否仍然存在可見。然後chroot/sandbox並重新運行漏洞利用程序...
  • 記錄分步重現它,幷包含推薦直到找到修復程序,同時如果對在沙箱中運行的網絡服務器的影響最小/ chroot的環境 - 推動他們這樣做...

希望這有助於 最好的問候, 湯姆。

+0

@gamBOOKa:check here http:// stackoverflow.com/questions/1547012/where-hackers-hang-out – t0mm13b 2010-02-14 21:45:29

+0

請參閱編輯的問題。它澄清了我的立場。我不是安全人員,事實上,我們公司沒有安全人員。所以我想解決這個問題。我的項目經理可能會忽視只讀訪問漏洞,而不是完全訪問漏洞。 – HyderA 2010-02-14 21:46:30

+0

@gAMBOOKa:哇!一個漏洞 - 你在運行什麼樣的服務器以實現這一點 - 在你的老闆的這個頁面上顯示出來,然後將你的手指指向這個看看....除非你告訴我們什麼服務器......我們也許能夠幫助你...我認爲你應該把這個問題放在你的問題上,你的服務器正在運行軟件x。你會得到更好的迴應....;)如果情況嚴重,你的項目經理應該傾聽你的意見,而不是將其視爲「只讀訪問漏洞」...... – t0mm13b 2010-02-14 21:51:10

2

Linux上的Chroot很容易破壞(與FreeBSD不同)。更好的辦法是打開SELinux和SELinux中沙箱中運行的Apache:

run_init /etc/init.d/httpd restart 

請確保您有mod_security的正確安裝和配置。

0

如果您已經可以查看etc/passwd,那麼服務器必須配置得很差...如果您真的想執行命令,那麼您需要知道服務器中運行的php腳本是否有任何system()命令這樣你就可以通過url傳遞命令.. 例如:url?command = ls 試圖查看.htaccess文件....它可能會訣竅..