檔案上傳靶場upload-labs實戰
阿新 • • 發佈:2022-04-20
前言
來具體學習一下檔案上傳的相關知識,參考教程:https://blog.csdn.net/qq_43390703/article/details/104858705,dalao寫的很全面了,後續我應該還會再補上一個上傳user.ini配置檔案的。
Pass-01
前端F12刪除CheckFile無法繞過,檢視原始碼,發現後臺對副檔名進行了過濾,限制只能傳圖片,上傳png一句話木馬,burp抓包修改副檔名為php後放包,蟻劍連線即可。
Pass-02
和Pass-01同樣的方法處理即可,我們來看看原始碼:
- file_exists:檢查所給的檔案或目錄是否存在,若存在則返回true;
- move_uploaded_file(file, newloc):將指定檔案file移動到新目錄newloc;
- $_FILES['file']['type']:檔案的MIME型別,在資料包的Content-Type中可以看到;
- $_FILES['file']['tmp_name']:檔案被上傳後在服務端儲存的臨時檔名;
- $_FILES['file']['name']:檔案在客戶端主機上的原名稱;
首先檢查是否存在上傳路徑,之後對檔案的MIME型別進行判斷(可以用burp抓包修改),判斷是否為jpeg,png或gif圖片;之後宣告temp_file和img_path是為了後面move_upload_file。總的來說只有一層MIME型別驗證,所以和上一題使用同種方法即可。(或者先上傳php檔案,抓包改Content-Type也可以)
Pass-03
先和第一題一樣處理,但被ban了,應該是後端要過濾副檔名了:
這些副檔名不讓用,改成phtml檔案,可以成功上傳。