1. 程式人生 > 其它 >檔案上傳漏洞的介紹及利用

檔案上傳漏洞的介紹及利用

介紹:File Upload,即檔案上傳漏洞,通常是由於對上傳檔案的型別、內容沒有進行嚴格的過濾、檢查,使得攻擊者可以通過上傳木馬(如前面提到的一句話木馬)獲取伺服器的 webshell 許可權,因此檔案上傳漏洞帶來的危害常常是毀滅性的,Apache、Tomcat、Nginx 等都曝出過檔案上傳漏洞。

一、dvwa之low級別檔案上傳漏洞講解

我們首先寫一個php的一句話木馬

 然後在dvwa靶場選擇我們的php一句話木馬檔案進行上傳即可

 

 

 接下來開啟我們的蟻劍工具,右鍵選擇新增資料,輸入我們的連線密碼和連線型別進行連線即可

 

 

 在low級別當中完全沒有難度可言,重要的是熟悉upload上傳漏洞的利用,對蟻劍工具的熟練使用。

二、dvwa之Medium級別檔案上傳漏洞演示

在中級別當中我們發現對檔案型別進行了校驗,我們是怎麼發現的呢,當然了是通過程式碼審計(這時候就需要你懂一點PHP程式碼啦,可以去檢視前面的LAMP基礎知識裡面的PHP內容),我們點選檢視原始碼即可明白。

 

 

 解決方法有很多,我們這裡通過抓包來分析一下,

 

 

我們看到這裡有個關於檔案型別的描述,我們將其改成 image/jpeg 然後放行資料包即可上傳成功。接下來怎麼做就不用說啦,參考上一步。

三、dvwa之High級別檔案上傳漏洞演示

通過對原始碼審計我們可以知道加了一些過濾規則。

1.檔名字尾必須是jpeg png jpg其中一個

2.必須是一張有效圖片通過函式getimagesize()去判斷。

  函式getimagesize()通過檔案頭去檢驗,而這個檔案頭有MIME型別,簡單來說就是去檢驗了MIME型別。

MIME 型別概述:MIME (Multipurpose Internet Mail Extensions) 是描述訊息內容型別的因特網標準。MIME 訊息能包含文字、影象、音訊、視訊以及其他應用程式專用的資料。 互動:在瀏覽器中顯示的內容有 HTML、有 XML、有 GIF、還有 Flash ……那麼,瀏覽器是如何區分它們,決定什麼內容用什麼形式來顯示呢? 答案是 MIME Type,也就是該資源的媒體型別。 媒體型別通常是通過 HTTP 協議,由 Web 伺服器告知瀏覽器的,更準確地說,是通過 ContentType 來表示的,例如:Content-Type: text/HTML 在這裡要注意區分Concent-Type。Concent-Type是通過檔名決定的。   我們這裡提供兩種解題思路, 第一種:   我們在一句話木馬程式碼第一行加上 GIF89a 繞過後端函式getimagesize()的校驗,當然這裡也不能忘記修改資料包當中的Concent-Type和上一個級別一樣,然後上傳即可。