安全動態(tài)

Upload-Lab第二關(guān):如何巧妙繞過MIME類型過濾?

來源:聚銘網(wǎng)絡(luò)    發(fā)布時間:2024-08-19    瀏覽次數(shù):
 
MIME類型是互聯(lián)網(wǎng)媒體類型,用于指示文件的性質(zhì)和格式。本篇文章將詳細介紹如何通過繞過MIME類型過濾來攻克upload-lab的第二關(guān)。


上文《Upload-Lab第一關(guān):輕松繞過前端驗證的技巧!

在upload-lab的第二關(guān),我們需要應(yīng)對MIME類型過濾。MIME類型是互聯(lián)網(wǎng)媒體類型,用于指示文件的性質(zhì)和格式。在實際的文件上傳場景中,服務(wù)器通常會檢查上傳文件的MIME類型以確保安全。然而,通過某些技巧,我們可以繞過這種檢查并上傳惡意文件。本篇文章將詳細介紹如何通過繞過MIME類型過濾來攻克upload-lab的第二關(guān)。


第二關(guān)簡介

在Pass02關(guān)卡中,服務(wù)器會檢查上傳文件的MIME類型,只有當(dāng)MIME類型為允許的類型(如圖片類型)時,文件才能成功上傳。如果上傳的文件MIME類型不符合要求,則會被拒絕。 源碼如下圖所示:

源碼

繞過MIME類型過濾的方法

  • 使用Burp Suite攔截并修改請求:這是最常用的方法,通過Burp Suite等抓包工具攔截上傳請求,然后修改MIME類型。
  • 構(gòu)造特殊的文件:通過修改文件頭信息,使文件看起來像是合法的類型。

實踐步驟

(1) 準備工具

  • Burp Suite
  • 一個簡單的Web Shell文件,例如:

(2) 啟動BurpSuite并配置瀏覽器代理

啟動Burp Suite并設(shè)置攔截模式,如下圖所示:

啟動BurpSuite并設(shè)置攔截模式

配置瀏覽器使用BurpSuite作為代理,如下圖所示:

配置瀏覽器使用代理

上圖中的HTTProy代理地址和端口要與BurpSuite的設(shè)置一致,如下圖所示:

HTTProy代理地址

(3) 此時上傳webshell,點擊上傳,會自動調(diào)到BurpSuite頁面,通過觀察下圖Content-Type的類型為application/x-php,因此,我們要對該類型進行修改成image/jpeg

Content-Type類型修改之前

Content-Type類型修改之后

修改后,先點擊Action -> Send to Intruder,接著,點擊Forward,點擊后,會輸入如下結(jié)果,如下圖所示:

成功返回請求頭

最后,通過前端頁面中的源碼看到webshell已經(jīng)成功上傳到服務(wù)器上,如下圖所示:

驗證上傳成功

通過訪問類似于http://服務(wù)器地址/upload/shell.php?cmd=whoami的URL來驗證WebShell是否工作。如下圖所示:

總結(jié)

通過這種方法,我們成功繞過了MIME類型過濾,上傳了惡意文件。這展示了在文件上傳功能中僅依賴MIME類型檢查是不夠的,還需要結(jié)合文件內(nèi)容、擴展名等多重檢查手段,才能有效防御此類攻擊。


 
 

上一篇:Upload-Lab第一關(guān):輕松繞過前端驗證的技巧!

下一篇:2024年8月16日聚銘安全速遞