天天看點

檔案上傳漏洞繞過手段

檔案上傳漏洞的成因: 1.伺服器的錯誤配置 2.開源編碼器漏洞 3.本地上傳上限制不嚴格被繞過 4.伺服器端過濾不嚴格被繞過

常見上傳檢測流程

檔案上傳漏洞繞過手段

2.檔案上傳漏洞的危害

(1)網站被控制 (2)伺服器淪陷 (3)同伺服器的其他網站淪陷

3.用戶端驗證檢測

檔案上傳漏洞繞過手段

可以看到用戶端代碼中使用了javascript語言進行了簡單的檔案字尾名判斷 這個時候我們隻需要将本機浏覽器的javascript子產品禁用就可以使該段代碼不被解析執行。 在火狐浏覽器中,在

檔案上傳漏洞繞過手段

URL這裡輸入about:config

檔案上傳漏洞繞過手段

把JavaScript改為false

伺服器端MIME繞過 MIME檢測的是資料包content-type字段。常見的圖檔格式的MIME類型有以下 幾種類型: PNG圖像:image/png  GIF圖形: image/gif  JPG圖形:image/jpeg

檔案上傳漏洞繞過手段

伺服器段目錄檢測繞過 在檔案上傳時,有的程式允許使用者将檔案放到指定的目錄中,如果指定目錄存在就将檔案寫 入目錄,不存在則先建立目錄,然後寫入。關鍵代碼如下:

檔案上傳漏洞繞過手段

在HTML頁面有一個隐藏的表單,它預設送出的檔案夾名稱為value的值,即”uploads”。代 碼如下:     

檔案上傳漏洞繞過手段

伺服器端擴充名檢測繞過 伺服器端字尾名檢測繞過腦圖

檔案上傳漏洞繞過手段

黑名單繞過辦法: 1.檔案名大小寫繞過:pHp,AsP

2.特殊檔案名繞過   在Windows下有一個特性就是如果檔案字尾以點‘.’或者空格‘ ’結尾的字尾 名時,系統在儲存檔案時會自動去除點和空格。但要注意 Unix/Linux 系統沒有 這個特性。 因為有些伺服器端的字尾名檢測是取檔案名最後一個.後面的字元串,拿這個字元串與黑名單清單對比

3. 0x00截斷繞過 檔案名字尾有一個%00位元組,可以截斷某些函數對檔案名的判斷。在許多語言函 數中,處理字元串的函數中0x00被認為是終止符 例如: 網站上傳函數處理xxx.asp%00.jpg時,首先字尾名是合法的jpg格式,可以 上傳,在儲存檔案時,遇到%00字元丢棄後面的 .jpg,檔案字尾最終儲存的字尾 名為xxx.asp

4 .htaccess檔案攻擊

檔案上傳漏洞繞過手段

白名單繞過辦法 1.0x00 截斷繞過 用像test.asp%00.jpg的方式進行截斷,屬于白名單檔案

2.解析/包含漏洞繞過 這類漏洞直接配合上傳一個代碼注入過的白名單檔案即可,再利用解析,包含漏洞。

檔案内容檢測繞過 針對檔案内容檢測的繞過,一般有兩種方式, 1.制作圖檔馬 2.檔案幻術頭繞過

圖檔馬Windos下的制作

檔案上傳漏洞繞過手段

其中第一個/b表示指定以二進制格式進行複制(合并) 第二個/b表示以什麼樣的格式儲存我們剛剛合并的那個檔案( 用于圖像類/聲音類檔案) 還有一種參數/a,它表示以ASCII格式複制合并檔案,用于txt等文檔類檔案

Linux下圖檔馬的制作

檔案上傳漏洞繞過手段

當然 >>追加符号也是可以用的

檔案幻術頭繞過 圖像相關的資訊檢測常用getimagesize( )函數。每種類型的圖檔内容最開頭會有一個标志性 的頭部,這個頭部被稱為檔案幻術。常用圖檔類型有以下幾類: 繞過jpg檔案幻術檢測要在檔案開頭寫上下圖的值

檔案上傳漏洞繞過手段

Value = FF D8 FF E0 00 10 4A 46 49 46

繞過png檔案幻術檢測要在檔案開頭寫上下圖的值:

檔案上傳漏洞繞過手段

Value = 89 50 4E 47

繞過gif檔案幻術檢測要在檔案開頭寫上下圖的值:

檔案上傳漏洞繞過手段

Value = 47 49 46 38 39 61

解析漏洞 解析漏洞這裡介紹三種: 1.Apache解析漏洞 2.IIS解析漏洞 3.Ngix解析漏洞

1.Apache解析漏洞

WampServer2.0All Version (WampServer2.0i / Apache 2.2.11) [Success] l  WampServer2.1All Version (WampServer2.1e-x32 / Apache 2.2.17) [Success] l  Wamp5 All Version (Wamp5_1.7.4 /Apache 2.2.6) [Success] l  AppServ 2.4All Version (AppServ - 2.4.9 /Apache 2.0.59) [Success] l  AppServ 2.5All Version (AppServ - 2.5.10 /Apache 2.2.8) [Success] l  AppServ 2.6All Version (AppServ - 2.6.0 /Apache 2.2.8) [Success]

這幾個版本的apache解析漏洞,大家可以自己百度下,按照别的大佬們說的做

2. IIS解析漏洞 IIS6.0有兩個解析漏洞,一個是如果目錄名包. asp 、.asa、.cer字元串,那麼這個目錄下所有的文 件都會按照 asp 去解析。 例如: chaoasp/1.jpg 因為檔案名中有 asp字樣,是以該檔案夾下的1.jpg檔案打開時,會按照asp檔案去解析執行

另一個是隻要檔案名中含有.asp、.asa、.cer會優先按 asp 來解析

IIS7.0/7.5是對php解析時有一個類似于Nginx的解析漏洞, 對任意檔案名隻要在URL後面追加 上字元串“ /任意檔案名.php”就會按照 php 的方式去解析 。 例子 :  ” http://www.baidu.com/upload/chao/1.jpg/chao.php" 這種情況下通路1.jpg,該檔案就會按照php格式被解析執行

3.Nginx解析漏洞 一個是對任意檔案名,在後面 添加/任意檔案名.php的解析漏洞,比如原本檔案名是 test.jpg, 可以添加為 test.jpg/x.php 進行解析攻擊。 一種是對低版本的 Nginx 可以在任意檔案名後面添加 %00.php 例如:127.0.0.1/sql-loads/load/chao.jpg%00.php 那麼chao.jpg也就被當作php格式檔案執行 nginx 0.5.* [Success]  nginx 0.6.* [Success]  nginx 0.7 <= 0.7.65 [Success]  nginx 0.8 <= 0.8.37 [Success]

繼續閱讀