實驗環境
實驗目的
實驗工具
實驗內容
mime
mime
:客戶端軟體,區分不同種類的資料,例如web瀏覽器就是通過mime型別來判斷檔案是gif,還是可列印的postscript檔案。web伺服器使用mime來說明傳送資料的種類, web客戶端使用mime來說明希望接收到的資料種類。
mime檢測原理
服務端mime型別檢測是通過檢查http包的content-type欄位中的值來判斷上傳檔案是否合法的。
php示例**:
<?php
if($_files['userfile']['type'] != "image/gif")
$uploaddir = 'uploads/';
$uploadfile = $uploaddir . basename($_files['userfile']['name']);
if (move_uploaded_file($_files['userfile']['tmp_name'], $uploadfile))
else
?>
示例**的功能是服務端用來處理檔案上傳的,在第二行中if語句對上傳檔案的type判斷是否為image/gif
。
在**中檢測的type值,對應http包中的字段content-type
的值,也就是所我們可以偽裝上傳檔案的type值,來繞過服務端的mime檢測
實驗步驟
快速查詢實驗工具
上傳正常的以及上傳一句話
,檢視區別,準備乙個普通的,使用*.jpg
在電腦上進行搜尋,可以看到很多,複製一張放到桌面上,改名為tupian.jpg
。
上傳成功後,觀察返回的頁面資訊。
步驟2:修改mime繞過上傳檢測
使用burploader
修改檔案的型別來繞過其防禦。首先開啟burploader,選擇proxy
->options
,設定burploader
**位址,預設為127.0.0.1
、埠:8080
。
設定ie的**位址,勾選為 lan 使用**伺服器,修改下面的**位址以及埠(設定與在burploader設定的**位址相同:127.0.0.1
、埠:8080
)。
選擇 burploader 的proxy
->intercept
將抓包的狀態從關閉改為開啟。
在瀏覽器上傳php檔案,回到burploader
看到mime資訊(content-type)為text/plain
。
我們將content-type後的內容修改為image/jpg
這樣伺服器就會認為這是乙個檔案了,接下來關閉抓包按鈕,這樣就成功的繞過mime驗證。
步驟3:獲取webshell許可權
上傳成功後,我們需要訪問檔案,這時可直接複製檔案路徑(file name後面的內容,即是一句話
的路徑),將複製的位址貼上至**位址後面,從而構造訪問位址,並複製構造好的位址。
使用中國菜刀軟體開啟webshell位址
開啟中國菜刀
軟體並填入複製的訪問位址,填入你設定的密碼,這裡設定的密碼是1
,選擇指令碼型別為php
,單擊新增
按鈕,最後我們雙擊指定條目後的可以看到目標**的目錄,這樣我們就成功獲取到目標**的webshell許可權。
實驗結果總結
a第1題:burpsuite預設埠是?
d第2題:下面的content-type那乙個型別不能在本實驗中能上傳?
第4題:以下哪個不是php一句話木馬?
<?php phpinfo();?> <?php eval_r($_post[sb])?> <?php assert($_post[sb]);?>
a
上傳檔案MIME型別繞過漏洞防禦
mime檢測原理 服務端mime型別檢測是通過檢查http包的content type欄位中的值來判斷上傳檔案是否合法的。php示例 if files userfile type image gif uploaddir uploads uploadfile uploaddir basename fi...
Web安全 基於上傳漏洞的MIME檢測繞過
實驗宣告 本實驗教程僅供研究學習使用,請勿用於非法用途,違者一律自行承擔所有風險!通過本實驗理解上傳檔案過程中mime檢測的方法,掌握利用burpsuit 抓包後修改相關資料報資訊繞過mime檢測的方法,熟悉mime上傳漏洞檢測的防護策略。滲透平台 kali 使用者名稱 college 密碼 360...
CTFHUB 檔案上傳之MIME繞過
1.mime type介紹 mime multipurpose internet mail extensions 多用途網際網路郵件擴充套件型別。是設定某種副檔名的檔案用一種應用程式來開啟的方式型別,當該副檔名檔案被訪問的時候,瀏覽器會自動使用指定應用程式來開啟。多用於指定一些客戶端自定義的檔名,以...