iT邦幫忙

2025 iThome 鐵人賽

DAY 8
0
Security

我的30天資安攻之路防身修練:實戰×工具×AI全紀錄系列 第 8

【DAY8】檔案上傳與遠端命令執行漏洞測試教學分享

  • 分享至 

  • xImage
  •  

檔案上傳若沒有妥善管控,是黑客攻陷網站的常見入口。今天要帶大家從實戰面測試並理解防禦機制!


一、檔案上傳漏洞基礎介紹與典型情境

什麼是檔案上傳漏洞?

網站若允許使用者上傳檔案,卻缺少嚴格檢查,很可能被攻擊者利用上傳惡意腳本,從而執行任意指令,這即是典型的檔案上傳漏洞。

常見攻擊手法

  • 副檔名繞過:如將 shell.php 改名為 shell.php.jpgshell.php;.jpg
  • MIME Type 偽造:攻擊者在上傳時偽裝檔案類型。
  • 壓縮檔內嵌惡意程式:將惡意腳本打包成 Zip,嘗試繞過過濾。

二、實戰測試流程示意圖

使用者上傳檔案 → 伺服器接收 → 
  ├─ 檢查副檔名 → 允許/拒絕
  ├─ 驗證 MIME Type → 允許/拒絕
  ├─ 對檔案內容進行 Magic Number 檢查 → 允許/拒絕
  ↓
檔案先放在隔離目錄(非執行目錄)
→ 再進行重新編碼或轉碼
→ 上傳完成,供網站使用(非執行)目錄存取

https://ithelp.ithome.com.tw/upload/images/20250908/20168357MOEWiG6tcp.jpg


三、如何測試是否存在遠端命令執行漏洞?

  1. 嘗試上傳一個簡單的 WebShell,內容如 PHP:
<?php system($_GET['cmd']); ?>
  1. 上傳成功後,在瀏覽器透過以下連結觸發命令:
http://example.com/uploads/shell.php?cmd=whoami
  1. 若能看到執行結果,代表存在遠端命令執行漏洞。

四、示意防禦架構圖

https://ithelp.ithome.com.tw/upload/images/20250908/20168357MSw4AFqWvd.jpg


五、實戰工具推薦與操作

  • Burp Suite:攔截並調整上傳檔案的副檔名與 Header。
  • bWAPP/DVWA:靶場環境練習檔案上傳漏洞。
  • exiftool:分析圖片檔頭與隱藏資料。

六、今日關鍵心得分享

  • 單靠副檔名過濾是不夠的,要同時驗證MIME Type,且用 Magic Number 進行深度檢查。
  • 安全的檔案上傳系統應放在非執行目錄,加上轉碼處理大幅降低風險。
  • 作為攻擊者,可變化多種繞過手法;作為防禦者,必須設想最壞狀況並實施多層防禦。
  • 定期檢視與更新過濾規則,配合 WAF 能有效防止異常上傳。


上一篇
第七天:密碼爆破 & 釣魚攻擊雙重實戰
系列文
我的30天資安攻之路防身修練:實戰×工具×AI全紀錄8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言