1. 程式人生 > >web-檔案上傳漏洞總結

web-檔案上傳漏洞總結

思維導圖:

 

 

 

一,js驗證繞過

1.我們直接刪除程式碼中onsubmit事件中關於檔案上傳時驗證上傳檔案的相關程式碼即可。

或者可以不載入所有js,還可以將html原始碼copy一份到本地,然後對相應程式碼進行修改,本地提交即可。

2.burp改包,由於是js驗證,我們可以先將檔案重新命名為js允許的字尾名,在用burp傳送資料包時候改成我們想要的字尾。

 

 

 

 

 

 

二,服務端驗證繞過

黑名單

1.上傳特殊可解析字尾

可以使用php345,phtml,PHP,phP,等

 

2.上傳.htaccess

我們需要上傳一個.htaccess檔案,內容為:

SetHandler application/x-httpd-php

上傳該apache配置檔案,會修改apache的配置,使後面上傳的檔案都會被看成php檔案執行,所以直接上傳圖片一句話木馬

 

3.字尾大小寫繞過

字尾名改為PHP即可

 

4.空格繞過

黑名單沒有對檔案中的空格進行處理,使用burpsuite擷取資料包,在上傳檔案字尾名中加空格繞過。

 

5.點繞過$

windows會對檔案中的點進行自動去除,所以可以在檔案末尾加點繞過,使用burpsuite抓包在上傳檔案字尾名中加點繞過

 

6.::$DATA繞過(windows)

使用burpsuite抓包在上傳檔案字尾名中加 ::$DATA繞過,使用burpsuite抓包在上傳檔案字尾名中加::$DATA繞過,1.php::$DATA ==》1.php

 

7.路徑拼接繞過

可以構造檔名1.PHP. . (點+空格+點),經過處理後,檔名變成1.PHP.,即可繞過。

 

8.雙寫繞過

可以採用雙寫繞過:1.pphphp,使用burpsuite抓包在上傳檔案字尾名該為pphphp

 

9. 配合解析漏洞,

如apache,1.php.xxx,apache會將該檔案字尾名解析為1.php執行

如iis6,使用burpsuite抓包,修改upfile為 。。/1.asp/

  目錄解析(6.0)

  形式:www.xxx.com/xx.asp/xx.jpg 原理: 伺服器預設會把.asp,.asp目錄下的檔案都解析成asp檔案。

  檔案解析

  如:使用burpsuite抓包,修改upfile為

  形式:www.xxx.com/xx.asp;.jpg 原理:伺服器預設不解析;號後面的內容,因此xx.asp;.jpg便被解析成asp檔案了。 解析檔案型別

 

 IIS6.0 預設的可執行檔案除了asp還包含這三種 :

  1. /test.asa

  2./test.cer

  3./test.cdx

 

三,白名單繞過

 

1.mime繞過

通過burpsuite抓包比較上傳正常jpg和非法檔案php的Content-type的區別

 

 

2.%00 截斷

 

使用burpsuite自帶工具將00%轉換為url編碼,如:filename=“1.jpg00%” ==》burpsuite編碼後變成1.jpg,forward上傳

 

 

 3.檔案幻數檢測繞過

在木馬內容的前面插入對應的檔案頭內容,例如:GIF89a ,更保險的方法是在可上傳的檔案中插入木馬程式碼,然後修改後綴

 

4.二次渲染繞過

通過例如載入檔案進行影象渲染的方式來測試,這個時候就一般需要在正常的檔案中插入木馬程式碼了,例如影象,那麼插入的程式碼一般會放在影象的註釋區,因此不會影響影象正常渲染繞過這種檢測,此時可以使用工具(稱為插馬器)來進行插入,例如edjpgcom,或者直接用copy命令來合成也可以。當然這種檢測不一定能夠完全繞過

 

5.條件競爭

這裡先將檔案上傳到伺服器,然後通過rename修改名稱,再通過unlink刪除檔案,因此可以通過條件競爭的方式在unlink之前,訪問webshell。

&n