利用00截斷使用brupsuite上傳
利用00截斷就是利用程序員在寫程序時對文件的上傳路徑過濾不嚴格,產生0X00上傳截斷漏洞。假設文件的上傳路徑為`http://xx.xx.xx.xx/upfiles/lubr.php.jpg`,通過Burpsuite抓包截斷將`lubr.php`后面的`.`換成`0X00`。在上傳的時候,當文件系統讀到`0X00`時,會認為文件已經結束,從而將`lubr.php.jpg`的內容寫到`lubr.php`中,從而達到攻擊的目的。構造服務器端擴展名檢測上傳
當瀏覽器將文件提交到服務器端的時候,服務器端會根據設定的黑名單對瀏覽器提交上來的文件擴展名進行檢測,如果上傳的文件擴展名不符合黑名單的限制,則不予上傳,否則上傳成功。本例講解,將一句話木馬的文件名`lubr.php`改成`lubr.php.abc`。首先,服務器驗證文件擴展名的時候,驗證的是.abc,只要改擴展名符合服務器端黑名單規則,即可上傳。另外,當在瀏覽器端訪問該文件時,Apache如果解析不了`.abc`擴展名,會向前尋找可解析的擴展名,即`.php`。一句話木馬可以被解析,即可通過中國菜刀連接。繞過Content-Type檢測文件類型上傳
當瀏覽器在上傳文件到服務器端的時候,服務器對上傳的文件Content-Type類型進行檢測,如果是白名單允許的,則可以正常上傳,否則上傳失效。繞過Content-Type文件類型檢測,就是用Burpsuite截取并修改數據包中文件的Content-Type類型,使其符合白名單的規則,達到上傳的目的。構造圖片木馬,繞過文件內容檢測上傳Shell
一般文件內容驗證使用`getimeagesize()`函數檢測,會判斷文件是否一個有效的文件圖片,如果是,則允許上傳,否則的話不允許上傳。