天天看點

DVWA筆記(5)--File Upload(檔案上傳)file upload

file upload

檔案上傳的話,就是通過網站的上傳頁面,将後門檔案上傳上去。看起來似乎很簡單,但是上傳繞過的方式可謂各式各樣,各種繞過姿勢。主要的難點就在繞過上傳。不過如果成功上傳了,那權限維持就很容易了。

low

我們使用kali自帶的菜刀weevely生成一個後門文php檔案。簡單介紹一下kali中的weevely的使用

生成後門檔案:

DVWA筆記(5)--File Upload(檔案上傳)file upload
weevely generate xiaopan.php xiaopan

這裡第一個參數是檔案名,第二個參數是調用的密碼。

接着我們直接上傳。burp抓包看看。

DVWA筆記(5)--File Upload(檔案上傳)file upload

成功上傳

DVWA筆記(5)--File Upload(檔案上傳)file upload

他已經把路徑傳回來了。我們直接用weevely連接配接

weevely http://192.168.27.128/DVWA-master/hackable/uploads/xiaopan.php xiaopan

參數一是後門檔案路徑。參數二是生成時的密碼。

DVWA筆記(5)--File Upload(檔案上傳)file upload

連接配接上去後随便輸入一個cmd指令。發現成功擷取webshell。

我們看看源碼

DVWA筆記(5)--File Upload(檔案上傳)file upload

沒有做任何過濾,直接上傳了。

medium

正常上傳,發現無法上傳了。隻能上傳jpg/png

DVWA筆記(5)--File Upload(檔案上傳)file upload

那麼我們可以先試試mime類型繞過。

mime類型就是檔案的類型。如下圖所示。

DVWA筆記(5)--File Upload(檔案上傳)file upload

我們上傳php檔案的時候。mime類型為appliation/x-php。

那麼我們上傳一個jpg圖檔,mime類型會是什麼呢。我們随便制造一個jpg。

touch test.jpg

然後上傳。截包看

DVWA筆記(5)--File Upload(檔案上傳)file upload
DVWA筆記(5)--File Upload(檔案上傳)file upload

發現變成了image/jpeg

那麼就好辦了,我們在上傳後門的時候截包修改mime類型為image/jpeg試試。

為了實驗結果正常,先把伺服器上傳的檔案先删了。

再次上傳後門檔案,把Mime類型修改。

DVWA筆記(5)--File Upload(檔案上傳)file upload
DVWA筆記(5)--File Upload(檔案上傳)file upload

forward。發現成功上傳

DVWA筆記(5)--File Upload(檔案上傳)file upload

weevely連接配接

DVWA筆記(5)--File Upload(檔案上傳)file upload

成功擷取webshell。

我們來看看源碼:

DVWA筆記(5)--File Upload(檔案上傳)file upload

果然是隻判斷了mime類型。

high

既然是high級别,正常的修改mime類型應該是不夠的。我們還是先看看源碼把。

DVWA筆記(5)--File Upload(檔案上傳)file upload

可以看到,不僅判斷了字尾名,而且還判斷了檔案内容是否是圖檔

我的想法是,先找來一個正常圖檔,然後通過黑魔法(vi/vim編輯),将php代碼寫到最下面。然後再使用檔案包含來執行。因為正常情況下apache時不會将jpg字尾解析成php的。是以要借助檔案包含。

我們先找來一個正常的圖檔。然後在kali中使用vim編輯這張圖檔。

DVWA筆記(5)--File Upload(檔案上傳)file upload

額。。。這個。。什麼鬼嘛。。不過不用了解這些東西。隻需要翻到最下面。添加進一個php寫入檔案的代碼即可。

DVWA筆記(5)--File Upload(檔案上傳)file upload

儲存之後,發現圖檔并沒有變樣子。那麼我們直接上傳把。

DVWA筆記(5)--File Upload(檔案上傳)file upload

通過了。我們這時候就可以将dvwa安全系數調到Low。然後使用檔案包含引用這張圖檔。(直接通路的話apache不會将jpg字尾解析成php的)。

DVWA筆記(5)--File Upload(檔案上傳)file upload

可以看到,成功通路了我們的後門檔案。這時應該已經生成了。我們去檔案上傳的那個地方看看。

DVWA筆記(5)--File Upload(檔案上傳)file upload

額。。為什麼隻有一個我的後門。生成的那個呢。。。。思來想去。後面發現。我是通過檔案包含調用的。而我寫入時時目前目錄下。是以我寫入的那個後門應該在檔案包含那裡。

DVWA筆記(5)--File Upload(檔案上傳)file upload

成功擷取了webshell。

impossible

先上傳

DVWA筆記(5)--File Upload(檔案上傳)file upload

發現不傳回路徑了。。但是傳回了這個檔案名。可以看到檔案名用了随機生成的。但我們之前知道路徑。我們再用檔案包含試試

DVWA筆記(5)--File Upload(檔案上傳)file upload

發現傳回的少了很多東西

直接看源碼:

DVWA筆記(5)--File Upload(檔案上傳)file upload

發現不僅重命名了檔案,還重新編碼了一遍。這樣我們的php代碼就被過濾掉了。

繼續閱讀