1. 程式人生 > >文件上傳限制繞過的原理以及方法總結

文件上傳限制繞過的原理以及方法總結

總結 IT img java eight turn 頁面 ima 控制

0x00 概述

6666666

0x01 客戶端檢測繞過(js檢測)

  • 檢測原理

在客戶端通過如下的javascript代碼來檢測用戶提交的文件是否合法:

 1 <script type="text/javascript">
 2     function checkFile() {
 3         var file = document.getElementsByName(‘upload_file‘)[0].value;
 4         if (file == null || file == "") {
 5             alert("請選擇要上傳的文件!");
6 return false; 7 } 8 //定義允許上傳的文件類型 9 var allow_ext = ".jpg|.png|.gif"; 10 //提取上傳文件的類型 11 var ext_name = file.substring(file.lastIndexOf(".")); 12 //判斷上傳文件類型是否允許上傳 13 if (allow_ext.indexOf(ext_name) == -1) { 14 var errMsg = "該文件不允許上傳,請上傳" + allow_ext + "類型的文件,當前文件類型為:" + ext_name;
15 alert(errMsg); 16 return false; 17 } 18 } 19 </script>

  • 如何判斷是否是客戶端js檢測
  • 繞過方法

   由於用來驗證文件合法性的js程序在我們客戶端,所以對於我們來說,這個驗證程序是可控制的,能夠很輕易的就繞過,具體能夠繞過的方法如下:

   1. 添加允許上傳的文件類型,使自己想要上傳的會見類型為合法

   -這是一個簡單的上傳頁面

技術分享圖片

2、刪除對js驗證腳本的調用,使其不能對上傳的文件類型做檢測,從而達到繞過

3、利用burpsuite抓包,修改文件類型進行繞過

h1

6666666

h1

6666666

文件上傳限制繞過的原理以及方法總結