檔案上傳漏洞分類:
1)伺服器配置不當(IIS6.0 put直接寫檔案)
iss伺服器 webDAV擴充開啟,網站目錄開啟可寫、可通路。隻要知道ip就可以寫檔案
2)本地檔案上傳限制被繞過 (javascript驗證被繞過)前端驗證
3)伺服器端過濾不嚴被繞過
(1)php jsp asp aspx asa php3 cer cdx .py
(2)多檔案上傳有時隻對第一個檔案進行嚴格檢驗
4)檔案路徑截斷
\0:php是基于C語言編譯的,C語言的字元串結尾以/0結束
?:在URL中 用來辨別檔案名和參數值, .php?id=
%00:ur編碼,php5.22版本漏洞
5)檔案解析漏洞導緻檔案被執行
iis:
a.在6.0版本中當檔案被命名為 a.asp;jpg 會被解析為腳本檔案
b.IIS 6.0 /xx.asp/xx.jpg "xx.asp"是檔案夾名
c.IIS 7.0/7.5預設Fast-CGI開啟,直接在url中圖檔位址後面輸入/1.php,會把正常圖檔當成php解析
apach:
早期版本上傳 1.php.xxx會被解析為腳本.Apache是從右往左判斷字尾
nginx:
a. 版本小于等于0.8.37,利用方法和IIS 7.0/7.5一樣,Fast-CGI關閉情況下也可利用。空位元組代碼 xxx.jpg.php
b. 早期版本 1.jpg/x.php會被當成腳本執行
c. 對低版本的在任意檔案名後面添加%00.php進行解析攻擊
d. 在 nginx 0.5.* 0.6.* 0.7 <= 0.7.65 0.8 <=0.8.37 以上版本中上傳一個在waf白名單之内擴充名的檔案1.jpg 然後以q.jpg%00.php進行請求
e。在 10.8.41~1.4.3 1.5<=1.5.7 的linux系統裡上傳一個在waf白名單之内擴充名的檔案1.jpg 然後以1.jpg%20%00.php進行請求
6)開源編輯器漏洞
(fckeditor,自定義檔案夾,檔案夾結合iis6.0解析漏洞)
ewebeditor:可以登入背景,配置允許上傳的檔案類型.asp
7)檔案上傳漏洞防禦:
a. 上傳檔案存儲目錄不給執行權限
b. 檔案字尾白名單,注意00截斷攻擊(php 5.2x 更新更新到最新版本)
c. 不能有本地檔案包含漏洞 (include dama.jpg)
d. 及時更新web應用軟體。避免解析漏洞攻擊
檔案上傳繞過:
1)字尾名大小寫繞過
2)黑名單繞過
3)特殊檔案名繞過
4)00截斷繞過
5).htacess檔案攻擊
6)解析繞過
WAF繞過:有些主機WAF軟體為了不影響web伺服器的性能,會對校驗的使用者資料設定大小上限,比如1M。此種情況可以構造一個大檔案,前面1M的内容為垃圾内容,後面才是真正的木馬内容,便可以繞過WAF對檔案内容的校驗;