1.2 文件上傳之解析漏洞


淺談文件解析及上傳漏洞



文件解析漏洞

解析漏洞主要是一些特殊文件被iis、Apache、Nginx等服務在某種情況下解釋成腳本文件格式並得以執行而產生的漏洞。

iis 5.x/6.0解析漏洞

iis6.0解析漏洞主要有以下三種:
  
1. 目錄解析漏洞 /xx.asp/xx.jpg
  在網站下創建文件夾名字為.asp、.asa的文件夾,其目錄內的任何擴展名的文件都被iis當做asp文件來解析         並執行。因此只要攻擊者可以通過該漏洞直接上傳圖片馬,並且可以不需要改后綴名!
2. 文件解析 xx.asp;.jpg
  在iis6.0下,分號后面的不被解析,所以xx.asp;.jpg被解析為asp腳本得以執行。
3. 文件類型解析 asa/cer/cdx
       iis6.0 默認的可執行文件除了asp還包含這三種asa、cer、cdx。

Apache解析漏洞

Apache對文件的解析主要是從右到左開始判斷並進行解析,如果判斷為不能解析的類型,則繼續向左進行解析,如xx.php.wer.xxxxx將被解析為PHP類型。

IIS 7.0/ Nginx <8.03畸形解析漏洞

在默認Fast-CGI開啟狀況下上傳名字為xx.jpg,內容為:
 
<?PHP fputs(fopen('shell.php','w'),'<?php eval($_POST[cmd])?>');?>
 
然后訪問xx.jpg/.php,在這個目錄下就會生成一句話木馬shell.php。

Nginx<8.03空字節代碼執行漏洞

  nginx如下版本:0.5., 0.6., 0.7 <= 0.7.65, 0.8 <= 0.8.37在使用PHP-FastCGI執行php的時候,URL里面在遇到%00空字節時與FastCGI處理不一致,導致可以在圖片中嵌入PHP代碼然后通過訪問xxx.jpg%00.php來執行其中的代碼。
  另一種Nginx文件漏洞是從左到右進行解析,既可繞過對后綴名的限制,又可上傳木馬文件,因此可以上傳XXX.jpg.php(可能是運氣,也可能是代碼本身問題,但在其他都不能成功的條件下可以試試)。如下:
Content-Disposition: form-data; name="userfiles"; filename="XXX.jpg.php"
 

htaccess文件解

如果Apache中.htaccess可被執行並可被上傳,那么可以嘗試在.htaccess中寫入:
 
<FilesMatch "shell.jpg"> SetHandler application/x-httpd-php </FilesMatch>
然后再上傳shell.jpg的木馬,這樣shell.jpg就可被解析為PHP文件了。

操作系統解析

  由於windows會將文件的后綴中的空格以及點進行過濾,如果遇到是黑名單校驗的,如限制不允許上傳PHP文件,而系統又是windows系統,那么我們可以上傳xx.php ,或者xx.php.,通過這種方式就可以繞過黑名單檢驗的文件上傳!

 

文件上傳漏洞

     文件頭欺騙漏洞

               在一句話木馬前面加入GIF89a,然后將木馬保存為圖片格式,可以欺騙簡單的waf。

     filepath漏洞

              filepath漏洞主要用來突破服務器自動命名規則,主要有以下兩種利用方式:

                       1、改變文件上傳后路徑(filepath),可以結合目錄解析漏洞,路徑/x.asp/

                   2、直接改變文件名稱(都是在filepath下進行修改),路徑/x.asp;.

     %00截斷

             %00截斷的兩種利用方式:
                  
                     1、更改filename,xx.php .jpg,在burpsuit中將空格對應的hex 20改為00
                2、更改filename,xx.php%00.jpg,在burpsuit中將%00進行右鍵轉換-url-urldecoder

     filetype漏洞

           filetype漏洞主要是針對content-type字段,主要有兩種利用方式:
                1、先上傳一個圖片,然后將content-type:images/jpeg改為content-type:text/asp,然后對                                 
                      filename進行00截斷,將圖片內容替換為一句話木馬。
                     2、直接使用burp抓包,得到post上傳數據后,Content-Type: text/plain改成 Content- Type: image/gif

     iconv函數限制上傳

  如果某天你上傳文件發現,不敢你上傳什么文件,上傳后的文件都會自動添加一個.jpg的后綴,那么我們可以懷疑是否是使用iconv這個函數進行了上傳的限制,此時我們可以使用類似00截斷的方法,但是這里不是00截斷,二是80-EF截斷,也就是說我們可以修改HEX為80到EF中的某一個來進行截斷,如果真是使用這個函數的話,那么恭喜你上傳任意文件成功!如上傳一個xx.php ,然后截斷抓包將后面的空格對應的十六進制改為80到EF中的任意一個!

      雙文件上傳

再一個文件上傳的地方,右鍵審查元素,首先修改action為完整路徑,然后復制粘貼上傳瀏覽文件(<input ......),這樣就會出現兩個上傳框,第一個上傳正常文件,第二個選擇一句話木馬,然后提交。!參考鏈接

下面是一個上傳地址:

右鍵—查看源代碼,修改2處代碼:
 
 
修改后:
 
 
保存為1.html
 
第一個上傳選擇正常的jpg圖片,第2個選擇我們的馬,
這里asp過濾了,所以我選擇cdx
 
成功突破,
右鍵—查看源代碼
 

 

菜刀連接:
 
   

 

表單提交按鈕

我們有時掃描發現上傳路徑,可是只有一個瀏覽文件,卻沒有提交按鈕,此時我們就需要寫入提交按鈕。
  寫入表單:
  F12審查元素,在選擇文件表單下面添加提交按鈕代碼。
<input type="submit" value="提交" name="xx">
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM