請列舉常見的上傳漏洞(至少寫出十種) ,並簡要說明其利用方法。
IIS解析漏洞有兩種:
1.當建立*.asa、*.asp格式的文件夾時,其目錄下的任意文件都將被IIS當作asp文件來解析。
2.當文件為*.asp;1.jpg時,IIS6.0同樣會以ASP腳本來執行。 Apache解析漏洞test.php.x1.x2.x3;
3.在Apache1.x和Apache2.x中1.php.rar會被當作php文件執行。 上傳的文件命名為:test.php.x1.x2.x3,Apache是從右往左判斷后綴 本地上傳繞過:
4.前台腳本檢測擴展名—繞過 當用戶在客戶端選擇文件點擊上傳的時候,客戶端還沒有向服務器發送任何消息,就對本地文件進行檢測來判斷是否是可以上傳的類型,這種方式稱為前台腳本檢測擴展名。
5.Content-Type檢測文件類型—繞過 當瀏覽器在上傳文件到服務器的時候,服務器對說上傳文件的Content-Type類型進行檢測,如果是白名單允許的,則可以正常上傳,否則上傳失敗。
6.文件系統00截斷—繞過 在上傳的時候,當文件系統讀到【0x00】時,會認為文件已經結束。利用00截斷就是利用程序員在寫程序時對文件的上傳路徑過濾不嚴格,產生0x00上傳截斷漏洞。
7.服務器端擴展名檢測黑名單—繞過 當瀏覽器將文件提交到服務器端的時候,服務器端會根據設定的黑白名單對瀏覽器提交上來的文件擴展名進行檢測,如果上傳的文件擴展名不符合黑白名單的限制,則不予上傳,否則上傳成功。
8.JS檢測上傳文件—繞過 上傳文件時,對方使用Java語句語法檢測上傳文件的合法性問題。
9.重寫解析規則—繞過 上傳覆蓋.htaccess文件,重寫解析規則,將上傳的帶有腳本馬的圖片以腳本方式解析。
10.后綴名大小寫繞過 用於只將小寫的腳本后綴名(如php)過濾掉的場合; 例如:將Burpsuite截獲的數據包中的文件名【evil.php】改為【evil.Php】
11.雙寫后綴名繞過 用於只將文件后綴名,例如"php"字符串過濾的場合; 例如:上傳時將Burpsuite截獲的數據包中文件名【evil.php】改為【evil.pphphp】,那么過濾了第一個"php"字符串"后,開頭的'p'和結尾的'hp'就組合又形成了【php】。
12. 特殊后綴名繞過 用於檢測文件合法性的腳本有問題的場合; 例如:將Burpsuite截獲的數據包中【evil.php】名字改為【evil.php6】,或加個空格改為【evil.php】等。