系統漏洞檢測實戰:從原始碼分析到二進制逆向的完整流程
一、前期準備:建立安全模型
- 熟悉軟體功能與實現: 如 IIS 虛擬目錄、腳本對應機制。
- 分析安全需求,建立模型: IIS 外掛、檔案類型識別、目錄正確識別、目錄限制、外掛特性、權限不在檔案物件上需自行識別同一檔案的所有檔名。
- 針對安全需求分析程式設計重點: IIS 需檢測
../、連結檔處理、識別正確目錄與檔名、程式介面完全按介面實現。
二、原始碼分析
- 通讀原始碼。
- 聚焦安全需求重點檢測區塊。
- 搜尋高風險函式呼叫:
strcpy、strcat、*printf、free、strncpy 等。
- 檢視常見程式錯誤:變數型別(長度用 int)、函式非直接返回賦值、邊界條件(計數從 0 或 1 開始)。
- 分析緩衝區使用代碼。
- 輸入/輸出合法性檢測。
- 程式介面呼叫:了解作業系統、基本檔案、進程呼叫特性。
- 資料結構審查。
- 最小權限原則檢查。
三、二進制代碼分析
1. 測試
- 熟悉輸入/輸出介面。
- 編寫針對性測試程式。
- 輸入/輸出特殊情況測試:特殊字元、超長字串。
- 安全需求條件測試。
2. 反組譯分析
- 閱讀理解反組譯碼。
- 安全需求檢測代碼分析。
- 呼叫介面代碼分析。
sub esp,xxx 代碼分析緩衝區配置。
- 高風險函式呼叫分析。
- 輸入/輸出檢測邏輯分析。
3. 追蹤除錯
四、總結與提升
- 分析總結各類漏洞成因、程式錯誤、補丁修補方式、程式設計避坑指南。
- 漏洞歸類歸納,全面考量。
部分經典漏洞研究案例
- 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