輕輕松松下載信息,文件上傳漏洞值得一看,否則會后悔!
我相信一些朋友看到標題,腦海里真滴是很有可能標出一個念頭,文件上傳漏洞,什么玩意!我平常經常上傳文件啊,為什么說文件上傳是漏洞呢?漏洞,嚇死我了,不會盜取我的數據吧。我的網盤自動同步的,照片什么的都在上面啊,腫么辦,腫么辦?別急。我來說一下怎么回事。Web應用程序通常會有文件上傳的功能, 例如在 BBS發布圖片 ,在個人網站發布ZIP 壓縮 包, 在辦公平臺發布DOC文件等 , 只要 Web應用程序允許上傳文件, 就有可能存在文件上傳漏洞。小編,我看不懂啊!ok,繼續往下看。一、原理一些web應用程序中允許上傳圖片,文本或者其他資源到指定的位置,文件上傳漏洞就是利用這些可以上傳的地方將惡意代碼植入到服務器中,再通過url去訪問以執行代碼。大部分文件上傳漏洞的產生是因為Web應用程序沒有對上傳文件的格式進行嚴格過濾 , 還有一部分是攻擊者通過 Web服務器的解析漏洞來突破Web應用程序的防護, 后面我們會講到一些常見的解析漏洞, 最后還有一些不常見的其他漏洞, 如 IIS PUT 漏洞等。上面這兩段比較官方,我來簡單的解釋一下,就是說,可以利用一些手法,把惡意代碼植入到服務器,然后后續進行更加深入的操作。至于什么操作,就是仁者見仁智者見智嘍。要是我,就植入小馬,然后連接他,再然后.....二、場景上面已經劇透了,但是還是想要再說一次。我先問一個問題。什么時候會用到這種漏洞呢?當我看到一個網站,感覺很有意思,想要獲取這個站點,恩,想要取得這個服務器的權限,讓他變為我的私有物,怎么辦呢?針對網站,一般都是想到上傳小馬,然后菜刀連接,最后lcx端口轉發,獲取服務器。具體解釋下?上傳漏洞與SQL注入或 XSS相比 , 其風險更大 , 如果 Web應用程序存在上傳漏洞 , 攻擊者甚至 可以直接上傳一個webshell到服務器上。上面這大段話意思就是說,碼農在寫程序的時候,對于文件的上傳格式沒有做限制,所以,很多可執行的后綴文件都可以上傳進去,問題就是這里,上傳以后,黑客通常會把這些文件保存至網站目錄下面,這樣的話,必然就可以解析了,一解析,就可以唱首涼涼了。因為這種文件通常是可以被黑客的菜刀連接過去的。說太多了,來個實驗。三、實驗打開我們已經部署好的環境,DVWA,這個滲透環境很有意思,可以嘗試一下。上傳php一句話木馬來嘗試一下,并且查看有沒有生效。ok,生效了,成功執行一句話代碼。接下來就是解析代碼,然后使用菜刀連接,上傳nc一類進行控制,上篇已經說過nc的簡單使用方法了,根因就是服務器依然處于內網,對于外網來說是不可被訪問的,所以需要端口轉發,把服務器的3389端口映射為外網端口,這樣就可以控制了。四.總結理所應當的有一個問題產生,我們應該這么防御呢?之前也說了,主要是代碼那塊限制不嚴格,而且會把讀取的文件放到了網站根目錄下面,導致一些問題。其實我想表達,防御主要有幾個關鍵點,一是文件上傳路徑,二是文件訪問權限,三是文件執行權限。所以使用如下方法,采用白名單以及圖片渲染,這樣即使結合解析漏洞或者是文件包含漏洞也沒法getshell,還有一種就是將用戶上傳的文件都放到指定的目錄中,同時在服務器配置中設定該目錄下的所有文件不可執行。