萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 電腦基礎知識 >  >> 健康知識

系統漏洞檢測實戰:從原始碼分析到二進制逆向的完整流程

一、前期準備:建立安全模型

  1. 熟悉軟體功能與實現: 如 IIS 虛擬目錄、腳本對應機制。
  2. 分析安全需求,建立模型: IIS 外掛、檔案類型識別、目錄正確識別、目錄限制、外掛特性、權限不在檔案物件上需自行識別同一檔案的所有檔名。
  3. 針對安全需求分析程式設計重點: IIS 需檢測 ../、連結檔處理、識別正確目錄與檔名、程式介面完全按介面實現。

二、原始碼分析

  1. 通讀原始碼。
  2. 聚焦安全需求重點檢測區塊。
  3. 搜尋高風險函式呼叫:strcpy、strcat、*printf、free、strncpy 等。
  4. 檢視常見程式錯誤:變數型別(長度用 int)、函式非直接返回賦值、邊界條件(計數從 0 或 1 開始)。
  5. 分析緩衝區使用代碼。
  6. 輸入/輸出合法性檢測。
  7. 程式介面呼叫:了解作業系統、基本檔案、進程呼叫特性。
  8. 資料結構審查。
  9. 最小權限原則檢查。

三、二進制代碼分析

1. 測試

  • 熟悉輸入/輸出介面。
  • 編寫針對性測試程式。
  • 輸入/輸出特殊情況測試:特殊字元、超長字串。
  • 安全需求條件測試。

2. 反組譯分析

  • 閱讀理解反組譯碼。
  • 安全需求檢測代碼分析。
  • 呼叫介面代碼分析。
  • sub esp,xxx 代碼分析緩衝區配置。
  • 高風險函式呼叫分析。
  • 輸入/輸出檢測邏輯分析。

3. 追蹤除錯

  • 異常攔截分析。
  • 字串流向追蹤、讀寫斷點。

四、總結與提升

  1. 分析總結各類漏洞成因、程式錯誤、補丁修補方式、程式設計避坑指南。
  2. 漏洞歸類歸納,全面考量。

部分經典漏洞研究案例

  • IIS ISM.DLL 檔名截斷洩漏內容
  • Windows 9x 共享密碼驗證漏洞
  • IIS Unicode 解碼目錄遍歷
  • IIS CGI 檔名檢查漏洞
  • IIS 遠東版洩漏檔案內容
  • IIS CGI 檔名錯誤解碼
  • FrontPage 2000 伺服器擴展緩衝區溢位
  • IIS ssinc.dll 緩衝區溢位
  • WebDav 拒絕服務 / 洩露原始碼 / 緩衝區溢位
  • asp.dll / shtml.dll / IIS CGI 相關漏洞
  • winlogon.exe / Windows API / mup.sys 緩衝區溢位
  • Apache for Win32 可搜尋檔案 / 任意命令執行
  • PHP 4.0 緩衝區溢位……
copyright © 萬盛學電腦網 all rights reserved