1. 程式人生 > >滲透之路基礎 -- 檔案上傳

滲透之路基礎 -- 檔案上傳

漏洞危害

可以直接上傳Shell,導致伺服器getshell

漏洞形成

Web應用程式沒有對上傳檔案的格式進行嚴格過濾 , 還有一部分是攻擊者通過 Web伺服器的解析漏洞來突破Web應用程式的防護;通常都會出現在,上傳功能上

檔案上傳格式及解析

​ 沒有解析漏洞的情況下,格式程式碼必須要和檔案格式一直,否則無法正常解析執行,如果存在解析漏洞的情況下,格式程式碼可以和不同格式相互解析

​ 之後也會發出關於解析漏洞的文章!

漏洞防禦

可以針對檔名、檔案大小、檔案內容、檔案型別等進行防禦

  1. 檢查檔案上傳路徑 ( 避免 0x00 截斷、 IIS6.0 資料夾解析漏洞、目錄遍歷 )

  2. 副檔名檢測 ( 避免伺服器以非圖片的檔案格式解析檔案 )

  3. 檔案 MIME驗證 ( 比如 GIF 圖片 MIME為 image/gif,CSS 檔案的 MIME為 text/css 等 ) 3. 檔案內容檢測 ( 避免圖片中插入 webshell)

  4. 圖片二次渲染 ( 最變態的上傳漏洞防禦方式 , 基本上完全避免了檔案上傳漏洞 )

  5. 檔案重新命名 ( 如隨機字串或時間戳等方式 , 防止攻擊者得到 webshell 的路徑 )

注意:若攻擊者上傳了shell之後,肯定會通過某刀劍進行連線,所以儘量不要暴露檔案路徑,並且設定訪問許可權,以進一步防禦

檔案上傳驗證及突破

檔案過濾,驗證字尾:

  1. 檔案頭驗證

  2. 檔案型別驗證

  3. 檔案字尾驗證

    繞過:

    1. 修改檔案頭,偽造檔案屬性
    2. 修改檔案型別,偽造檔案型別 MIME繞過
    3. 增加多重字尾,偽造檔案字尾 命名繞過

    js 本地驗證突破

    1. 複製js程式碼,建立本地檔案刪除相應驗證程式碼後直接上傳(無防盜鏈可用)

    2. %00 截斷 shell.php%00.jpg => shell.php

      上傳成功之後仍然是圖片格式

      這時候需要抓包修改

      • 注意:直接通過burp抓包修改,可能上傳的檔案還是shell.php%00.jpg
      • 需要通過修改%00的URL編碼格式:
        • 選中%00 右鍵選中 URL
        • 點選 URL-decode
        • %00 亂碼則可以上傳

檔案上傳MIME驗證突破y>

檔案上傳漏洞演示指令碼--MIME驗證例項

請選擇要上傳的檔案:

```

​ 抓包修改 Content-Type

序號 內容型別 副檔名 描述
1 application/msword doc Microsoft Word
2 application/octet-stream bin dms lha lzh exe class 可執行程式
3 application/pdf pdf Adobe Acrobat
4 application/postscript ai eps ps PostScript
5 appication/powerpoint ppt Microsoft Powerpoint
6 appication/rtf rtf rtf 格式
7 appication/x-compress z unix 壓縮檔案
8 application/x-gzip gz gzip
9 application/x-gtar gtar tar 文件 (gnu 格式 )
10 application/x-shockwave-flash swf MacroMedia Flash
11 application/x-tar tar tar(4.3BSD)
12 application/zip zip winzip
13 audio/basic au snd sun/next 聲音檔案
14 audio/mpeg mpeg mp2 Mpeg 聲音檔案
15 audio/x-aiff mid midi rmf Midi 格式
16 audio/x-pn-realaudio ram ra Real Audio 聲音
17 audio/x-pn-realaudio-plugin rpm Real Audio 外掛
18 audio/x-wav wav Microsoft Windows 聲音
19 image/cgm cgm 計算機圖形元檔案
20 image/gif gif COMPUSERVE GIF 影象
21 image/jpeg jpeg jpg jpe JPEG 影象
22 image/png png PNG 影象

​ http://www.w3school.com.cn/media/media_mimeref.asp

關於編輯器上傳漏洞利用

​ 網站程式編輯器外掛,eweb,fck,ce,cfinder,ck等

​ 利用圖片路徑判斷編輯器型別

.htaccess 檔案上傳漏洞

​ 只適用於Apache 通過配置檔案來解析執行相應指令碼

<FilesMatch "code">
SetHandler application/x-httpd-php
</FilesMatch>

直接訪問是訪問不到的

通過修改.htaccess檔案可直接訪問

可以將任意檔案解析為PHP

  1. 如果存在上次.htaccess檔案,可以直接利用規則解析
  2. 如果存在修改檔案的許可權,修改解析規則
  3. 拓展利用:許可權維持