文件上傳漏洞的介紹及利用


介紹: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和上一個級別一樣,然后上傳即可。

 

第二種:

  制作圖片馬

 

 這樣就很簡單就可以啦。然后上傳即可。

 

 接下來的問題就是如何把jpg文件當作php來執行 

1.文件包含,這也被叫做文件包含漏洞 (這道題我們用這個方式)
我們打開dvwa當中文件包含漏洞的頁面關卡,然后穿參即可。

 

我們接下來如果想用蟻劍去連接的話,需要一個步驟,那就是蟻劍當中需要填寫該網頁的cookie,不然的話會提示返回數據為空

 

 然后我們就能連接成功啦,還有一點我們的網址要寫 http://49.232.106.183/dvwa-labs/vulnerabilities/fi/?page=file:///var/www/html/dvwa-labs/hackable/uploads/webshell.jpg

2. 通過利用.htaccess文件 (我們這一關無法利用),通過它可以指定文件的解析方式

3. 00截斷 00是一個壞字符(注意這種方法只能適用於php版本比較低的情況下)
例如:get方式傳參的話 利用a.php%00.jpeg     
   post方式傳參的話 利用a.php0x00.jpeg
 
 
 
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM