前端判斷

檔案上傳前端處理判斷副檔名的一律將js封鎖停用,停用後重新載入頁面即可上傳

後端判斷

檢查上傳檔案副檔名

通常會檢查各類敏感副檔名,php、php3、php5、pthml、jsp、jsP等等。

多副檔名手法

apache中的主配置httpd.conf有一個DefaultType引數,用來處理未知副檔名,這個引數預設是 text/plain ,遇到未知副檔名,會先判斷有沒有其他副檔名,順序是由右邊往左開始找起,如果沒有,則直接當txt、html處理。

上傳一個檔案shell.php.aaa,apache解析方式為最後的aaa無法解析,則往左檢查,能是一種繞過手法。

圖片馬手法

將圖片檔寫入php指令進行合成

copy filename.jpg/b + shell.php getshell.jpg 

進行合成後上傳getshell.jpg即可,同時配置一個.htaccess上傳,告訴伺服器這個檔案運行php、jsp指令

<FilesMatch "pic.jpg">
SetHandler application/x-httpd-php
</FilesMatch>

副檔名空格、點手法

沒有檢查副檔名是否摻雜空格、點,可在副檔名尾部中加入空白、點。

有以下幾種狀況能使用

windows特性之一,將空白和點會自行修飾掉,windows不允許檔名最後結尾為點或空白。

<aside> ⚠️ 在練習抓包修改副檔名時傳過去時一直上傳失敗,沒能找出原因。

</aside>