一、前期准備,建立安全模型
1、熟悉軟件功能、功能實現,配置等;
如:IIS的虛擬目錄、腳本映射;
2、根據功能,分析安全需求,建立安全模型;
IIS外掛,文件類型識別,目錄正確識別;目錄限制;
外掛的特點;權限不是在文件對象上,需要自己識別文件,所以需要識別出同一個文件的所有文件名;
3、根據安全需求,分析編程應注意的地方,重點檢查。
IIS要對"../"進行檢測,連接文件的處理,識別出正確的目錄、文件名; 編程接口完全按接口實現;
二、原代碼分析
1、通讀原代碼;
2、安全需求裡面重點需要檢測的地方;
3、搜索容易有問題的函數調用,如strcpy、strcat、*printf、free、strncpy等;
4、常見一些編程問題;一些變量類型,如長度變量用int,注意一些函數非直接返回賦值問題等,一些邊界條件,記數從0開始還是從1開始。
5、分析緩沖區使用的代碼;
6、輸入輸出合法檢測;
7、編程接口調用;了解操作系統、基本文件、進程調用等的特性;
8、數據結構;
9、安全領域的最小原則;
三、二進制代碼分析
1、測試;
(1)、熟悉輸入輸出;
(2)、根據需要編寫測試程序;
(3)、輸入輸出各種特殊情況測試,特殊字符、長串;
(4)、安全需求需要檢測的一些條件測試;
2、反匯編分析;
(1)、閱讀理解反匯編代碼;
(2)、安全需求檢測的代碼分析;
(3)、調用接口代碼分析;
(4)、sub esp,xxx 代碼分析緩沖;
(5)、strcpy、strcat、*printf、free、strncpy等調用分析;
(6)、輸入輸出檢測;
3、跟蹤調試;
(1)、異常的攔截分析;
(2)、一些字符串的流向,讀寫斷點;
四、總結提高
1、分析總結各種漏洞、漏洞原因、編程問題,,補丁修補方法,編程怎麼避免。
2、對漏洞歸納分類,全面考慮;
一些漏洞研究成果:
1. IIS ISM.DLL文件名截斷漏洞洩漏文件內容漏洞;
2. Microsoft Windows 9x共享密碼校驗漏洞;
3. Microsoft IIS Unicode解碼目錄遍歷漏洞;
4. Microsoft IIS CGI文件名檢查漏洞;
5. Microsoft IIS遠東版洩漏文件內容漏洞;
6. Microsoft IIS CGI文件名錯誤解碼漏洞;
7. Microsoft FrontPage 2000服務器擴展緩沖區溢出漏洞;
8. Microsoft IIS ssinc.dll緩沖區溢出漏洞;
9. WebDav 拒絕服務漏洞;
10. WebDav 洩露文件源代碼漏洞;
11. WebDav 緩沖區溢出漏洞;
12. asp.dll 緩沖區溢出漏洞;
13. shtml.dll 洩露文件源代碼漏洞;
14. IIS CGI 拒絕服務漏洞;
15. IIS CGI 洩露源代碼漏洞;
16. winlogon.exe 緩沖區溢出漏洞;
17. WINDOWS API 緩沖溢出漏洞;
18. Windows mup.sys 緩沖溢出漏洞;
19. apache for win32 可搜索文件漏洞;
20. apache for win32 執行任意命令漏洞;
21. php4.0 緩沖溢出漏洞;………… 邊聊邊玩:聊天軟件娛樂新勢力 拒絕網絡廣告:我的地盤我說了算