file upload
檔案上傳的話,就是通過網站的上傳頁面,将後門檔案上傳上去。看起來似乎很簡單,但是上傳繞過的方式可謂各式各樣,各種繞過姿勢。主要的難點就在繞過上傳。不過如果成功上傳了,那權限維持就很容易了。
low
我們使用kali自帶的菜刀weevely生成一個後門文php檔案。簡單介紹一下kali中的weevely的使用
生成後門檔案:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5CN1EzM1IjMxEjMwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
weevely generate xiaopan.php xiaopan
這裡第一個參數是檔案名,第二個參數是調用的密碼。
接着我們直接上傳。burp抓包看看。
成功上傳
他已經把路徑傳回來了。我們直接用weevely連接配接
weevely http://192.168.27.128/DVWA-master/hackable/uploads/xiaopan.php xiaopan
參數一是後門檔案路徑。參數二是生成時的密碼。
連接配接上去後随便輸入一個cmd指令。發現成功擷取webshell。
我們看看源碼
沒有做任何過濾,直接上傳了。
medium
正常上傳,發現無法上傳了。隻能上傳jpg/png
那麼我們可以先試試mime類型繞過。
mime類型就是檔案的類型。如下圖所示。
我們上傳php檔案的時候。mime類型為appliation/x-php。
那麼我們上傳一個jpg圖檔,mime類型會是什麼呢。我們随便制造一個jpg。
touch test.jpg
然後上傳。截包看
發現變成了image/jpeg
那麼就好辦了,我們在上傳後門的時候截包修改mime類型為image/jpeg試試。
為了實驗結果正常,先把伺服器上傳的檔案先删了。
再次上傳後門檔案,把Mime類型修改。
forward。發現成功上傳
weevely連接配接
成功擷取webshell。
我們來看看源碼:
果然是隻判斷了mime類型。
high
既然是high級别,正常的修改mime類型應該是不夠的。我們還是先看看源碼把。
可以看到,不僅判斷了字尾名,而且還判斷了檔案内容是否是圖檔
我的想法是,先找來一個正常圖檔,然後通過黑魔法(vi/vim編輯),将php代碼寫到最下面。然後再使用檔案包含來執行。因為正常情況下apache時不會将jpg字尾解析成php的。是以要借助檔案包含。
我們先找來一個正常的圖檔。然後在kali中使用vim編輯這張圖檔。
額。。。這個。。什麼鬼嘛。。不過不用了解這些東西。隻需要翻到最下面。添加進一個php寫入檔案的代碼即可。
儲存之後,發現圖檔并沒有變樣子。那麼我們直接上傳把。
通過了。我們這時候就可以将dvwa安全系數調到Low。然後使用檔案包含引用這張圖檔。(直接通路的話apache不會将jpg字尾解析成php的)。
可以看到,成功通路了我們的後門檔案。這時應該已經生成了。我們去檔案上傳的那個地方看看。
額。。為什麼隻有一個我的後門。生成的那個呢。。。。思來想去。後面發現。我是通過檔案包含調用的。而我寫入時時目前目錄下。是以我寫入的那個後門應該在檔案包含那裡。
成功擷取了webshell。
impossible
先上傳
發現不傳回路徑了。。但是傳回了這個檔案名。可以看到檔案名用了随機生成的。但我們之前知道路徑。我們再用檔案包含試試
發現傳回的少了很多東西
直接看源碼:
發現不僅重命名了檔案,還重新編碼了一遍。這樣我們的php代碼就被過濾掉了。