iT邦幫忙

2025 iThome 鐵人賽

DAY 10
0
Security

30 天 TryHackMe 實戰系列 第 10

Day 10 文件上傳漏洞,如何讓伺服器聽我的?

  • 分享至 

  • xImage
  •  

前兩天我們學了針對資料庫的 SQLi 和針對使用者的 XSS。今天,我們要學習一個能直接瞄準伺服器本身的漏洞:文件上傳漏洞

當一個網站允許使用者上傳檔案時,如果沒有做好嚴格的檢查,駭客就有機會上傳一個惡意的程式碼腳本(通常稱為 Web Shell)。一旦伺服器執行了這個腳本,駭客就能遠端控制這台伺服器,後果不堪設想。

今天,我完成了 TryHackMe 上的 "File Upload Vulnerabilities" 房間,學習了如何利用這個漏洞。


文件上傳漏洞的核心原理

這個漏洞的成功,往往是因為防禦機制不夠嚴謹:

  • 繞過前端檢查 (Client-side Bypass): 最弱的防護是瀏覽器端的檢查(例如:用 JavaScript 檢查檔案類型)。駭客可以很容易地透過攔截 HTTP 請求,將惡意的檔案類型偷偷換成合法的。
  • 檔案類型偽裝 (Extension Bypass): 伺服器通常只允許上傳圖片(如 .jpg 或 .png)。駭客會嘗試將惡意腳本的副檔名改成伺服器允許的類型,或是使用雙副檔名(例如:shell.php.jpg)。
  • 內容檢查的缺失: 即使伺服器檢查了副檔名,如果它沒有檢查檔案的實際內容(例如:確認檔案是否真的是一張圖片),駭客仍然可以成功上傳惡意腳本。

今日挑戰心得

在房間中,我成功地將一個惡意的 PHP 檔案偽裝成圖片上傳,並在伺服器上執行它,進而取得了遠端控制權。這個體驗讓我感到震撼,因為這是一個非常直接且高風險的漏洞。

從防禦的角度來看,開發者在處理文件上傳功能時,必須抱持著極度謹慎的態度:絕對不能相信來自使用者的任何資訊! 必須在伺服器端進行多層次的檢查,包括嚴格檢查副檔名、檔案內容,並限制上傳目錄的執行權限。


上一篇
Day 9 跨站腳本攻擊 (XSS),網頁漏洞的另一面
下一篇
Day 11 暴力破解入門,當駭客只剩下字典時...
系列文
30 天 TryHackMe 實戰12
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言