1. 程式人生 > >檔案上傳 07 上傳攻擊框架

檔案上傳 07 上傳攻擊框架

本文記錄檔案上傳學習過程,教程為 《Upload Attack Framework V1.0》

上傳攻擊框架

簡介

之前的都是從服務端的角度在給上傳情況分類

現在我們要從攻擊者的角度來給上傳情況分類

這是這套framework 的核心部分

知道了從攻擊者的角度如何分類

就等於知道如何來綜合分析一套原始碼

並從中知道是否有存在漏洞的可能性

繞過檢測/過濾

  1. 輕量級檢測繞過攻擊

    [*] 繞過javascript 對副檔名的檢測

    <用burp 之類的反向代理工具直接POST 資料包到服務端,繞過前端檢測>

    [*] 繞過服務端對http request 包MIME 型別檢測

    <用burp 之類的反向代理工具偽造POST 資料包到服務端,繞過MIME 檢測>

  2. 路徑/副檔名檢測繞過攻擊

    [*] 黑名單繞過

    檔名大小寫          
    名單列表繞過          
    特殊檔名繞過     
    0x00 截斷繞過       
    .htaccess 檔案攻擊
    本地包含漏洞
    Apache 解析漏洞
    IIS 解析漏洞
    Nginx 解析漏洞
    

    [*] 白名單繞過

    繞過0x00 截斷繞過
    本地檔案包含漏洞
    IIS 解析漏洞
    Nginx 解析漏洞
    
  3. 檔案內容檢測繞過攻擊

    [*] 檔案載入測試繞過

    <對檔案進行程式碼注入再配合任意解析呼叫/漏洞>

  4. 上傳攻擊框架

    輕量級檢測繞過攻擊

    [*] 繞過javascript 對副檔名的檢測                (程式碼層漏洞)
    [*] 繞過服務端對http request 包MIME 型別檢測   (程式碼層漏洞)
    

    路徑/副檔名檢測繞過攻擊

    [*] 黑名單繞過
    
    檔名大小寫繞過        (程式碼層漏洞)
    名單列表繞過          (程式碼層漏洞)
    特殊檔名繞過         (程式碼層漏洞)
    0x00 截斷繞過           (程式碼層漏洞)
    .htaccess 檔案攻擊      (程式碼層漏洞)
    php 檔案包含漏洞      (程式碼層漏洞)
    Apache 解析漏洞         (應用層漏洞)
    IIS 解析漏洞            (應用層漏洞)
    Nginx 解析漏洞          (應用層漏洞)
    
    
    [*] 白名單繞過
    
    0x00 截斷繞過           (程式碼層漏洞)
    php 檔案包含漏洞      (程式碼層漏洞)
    IIS 解析漏洞            (應用層漏洞)
    Nginx 解析漏洞          (應用層漏洞)
    

    檔案內容檢測繞過攻擊

    [*] 檔案載入繞過      (程式碼層漏洞)
    

上傳攻擊流程圖

傳攻擊流程圖

程式碼層上傳漏洞如下圖(紅色字型標記部分)

程式碼層上傳漏洞圖

攻擊要點:

要繞過輕量級檢測

要繞過檔案內容檢測

A. 要繞過程式碼層對路徑/副檔名檢測(直接解析)

B. 找到程式碼層的解析呼叫(間接解析)

應用層上傳漏洞如下圖(紅色字型標記部分)

應用層上傳漏洞圖

攻擊要點:

要繞過輕量級檢測

要繞過檔案內容檢測

A. 找到應用層的解析漏洞(間接解析)

攻擊手法與環節的對應圖

攻擊手法與環節的對應圖

上傳攻擊框架的核心之一

要注意下,在這裡如果在路徑/副檔名檢測處檢測未通過,流程到解析攻擊時

白名單檢測繞過技術裡並不完全能利用所有解析攻擊方式

在路徑/副檔名檢測繞過攻擊裡已經給出了具體細節

攻擊手法與環節圖

攻擊手法與環節圖

上傳攻擊分析框架

檢測框架圖

檢測框架圖

上傳攻擊框架的核心之二

大家可以像上面分析fckeditor 的方式,在分析一份原始碼或一個目標環境時

先把上面的上傳攻擊分析框架列表放好

然後去依次對比

哪些檢測環節存在/不存在

哪些環節是安全/還是有漏洞

哪些環節如果被利用是程式碼層漏洞/還是Web 應用程式解析漏洞

對應在該項後面進行填寫

最後把Vule 的部分選出來,再來分析如何進行組合,以及利用它們需要什麼樣的條件

通過這個分析框架進行白盒/黑盒分析並羅列出所有情況

攻擊者便能更系統地分析出原始碼/目標環境可能存在的漏洞

整個上傳攻擊的核心最後被分析和總結成了上面兩張重要的圖

攻擊手法與環節圖和檢測框架圖

這兩張圖就是這篇 paper 最有價值的總結了

上傳攻擊的防禦圖

上傳攻擊的防禦圖

上傳攻擊的防禦圖

圖中紅點便是防禦的重要環節

需要注意的:

  1. 輕量級檢測必然能繞過
  2. 檢測的重點放在檔案內容檢測 - 可以用檢測指令碼語言特徵碼的機制
  3. 路徑/副檔名檢測一定要用白名單 - 並且注意路徑的0x00 截斷攻擊(把php 更新至最新版本即可,已經修補了這個漏洞了)
  4. 不能有本地檔案包含漏洞
  5. 隨時注意更新web 應用軟體 - 避免被解析漏洞攻擊