【檔案上傳繞過】路徑拼接問題導致上傳漏洞
一、原始碼
$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {
if (file_exists(UPLOAD_PATH)) {
$deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess");
$file_name = trim($_FILES['upload_file']['name']);
$file_name = deldot($file_name);//刪除檔名末尾的點
$file_ext = strrchr($file_name, '.');
$file_ext = strtolower($file_ext); //轉換為小寫
$file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字串::$DATA
$file_ext = trim($file_ext); //首尾去空
if (!in_array($file_ext, $deny_ext)) {
$temp_file = $_FILES['upload_file']['tmp_name'];
$img_path = UPLOAD_PATH.'/'.$file_name; // 路徑拼接的是處理後的檔名
if (move_uploaded_file($temp_file, $img_path)) {
$is_upload = true;
} else {
$msg = '上傳出錯!';
}
} else {
$msg = '此檔案型別不允許上傳!';
}
} else {
$msg = UPLOAD_PATH . '資料夾不存在,請手工建立!';
}
}
路徑拼接的是處理後的檔名,導致可以利用類似.php. .
(兩個點號之間有一個空格)繞過,程式先是刪除一個點,再刪除一個空格經過處理後,檔名變成.php.
,即可繞過。
二、使用burpsuite修改檔案字尾繞過
上傳檔案並訪問
檔案上傳到Windows伺服器後會自動將後面的點去掉
相關文章
- 檔案上傳漏洞(繞過姿勢)
- 文字檔案上傳漏洞[任意.繞過.解析]
- 網路安全中檔案上傳漏洞是如何導致的?
- [MRCTF2020]你傳你呢 1 (檔案上傳漏洞,利用.htaccess檔案繞過)TF2
- 檔案上傳漏洞
- 24:WEB漏洞-檔案上傳之WAF繞過及安全修復Web
- laravel上傳圖片路徑問題Laravel
- 網站漏洞檢測解析繞過上傳漏洞網站
- WEB漏洞——檔案上傳Web
- 檔案上傳之後端黑白名單繞過後端
- 檔案上傳常見問題
- 檔案上傳經由ZUUL轉發,導致的 檔名(OriginalFilename)亂碼問題Zuul
- 淺析檔案上傳漏洞
- Web安全-檔案上傳漏洞Web
- ctfshow檔案上傳漏洞做題記錄
- 阿里雲oss 上傳檔案的兩種方式(本地路徑上傳遠端連結上傳)阿里
- 檔案上傳之WAF繞過及相安全防護
- 探索網路安全:淺析檔案上傳漏洞
- 分散式檔案上傳導致服務假死了?分散式
- 任意檔案上傳漏洞修復
- <web滲透-檔案上傳漏洞>Web
- 檔案上傳漏洞思路詳解
- 檔案上傳漏洞總結(全)
- 檔案上傳(解析)漏洞詳解
- FileUpload 上傳的檔案獲取相對路徑
- 上傳檔案專題
- 檔案包含漏洞(本地包含配合檔案上傳)
- git上傳過濾檔案Git
- Java大檔案上傳、分片上傳、多檔案上傳、斷點續傳、上傳檔案minio、分片上傳minio等解決方案Java斷點
- Web 安全漏洞之檔案上傳Web
- 單個檔案上傳和批量檔案上傳
- 檔案上傳——客戶端檢測繞過(JavaScript檢測)(一)客戶端JavaScript
- CTFHub技能樹web(持續更新)--檔案上傳--雙寫繞過Web
- 前端大檔案上傳/分片上傳前端
- 檔案上傳
- 記一個 FormData 多檔案上傳問題ORM
- PHP實現單檔案、多檔案上傳 封裝 物件導向實現檔案上傳PHP封裝物件
- 過濾器解決檔案上傳下載跨域問題過濾器跨域