程式碼審計基礎--白盒測試
程式碼審計原理
檢查原始碼中的安全缺陷,檢查程式原始碼是否存在安全隱患,或者有編碼不規範的地方,通過自動化工具或者人工審查的方式,對程式原始碼逐條進行檢查和分析,發現這些原始碼缺陷引發的安全漏洞,並提供程式碼修訂措施和建議。
基本思路
主要由三個方面組成:
關鍵詞
功能(一般框架中)
通讀程式碼
關鍵詞
對一些存在漏洞的關鍵函式名進行定向篩選。
功能
對可能存在漏洞的相關功能進行審計,常見的有:
程式初始安裝
站點資訊洩漏
檔案上傳
檔案管理
登陸認證
資料庫備份恢復
找回密碼
驗證碼
通讀程式碼
通讀全文發作為一種最麻煩的方法也是最全面的審計方法,但是該方法也是一種必要的方法。
瞭解整個應用的業務邏輯,才能挖掘到更多更有價值的漏洞。
語言特性—PHP
PHP目錄結構
放引用的庫或者外掛,資料夾名字一般叫 librarie、lib、plugin
PHP專案中 vendor 資料夾是PHP的包管理器安裝依賴程式碼存放的路徑
檢視程式碼資料夾一般叫 layout、theme、template、view
控制器資料夾一般叫 controller
公用的一些程式碼資料夾一般叫 common
一些工具函式可能放在 helper/util/tool 資料夾裡
配置檔案放在 config 資料夾裡
components 或 modules: 這裡有mvc的程式碼,把功能互相獨立出來
route.php: 對不同的url呼叫不同的程式碼
語言特性—Java
Java程式碼審計輔助工具
Jetbrains IDEA(IDE)
Sublime text(文字編輯器)
JD-GUI(反編譯)
Fernflower(反編譯)
Bytecode-Viewer
Eclipse(IDE)
NetBeans(IDE)
語言特性—ASP.NET
一般來說,在 asp.net 應用中,需要進行觀察的檔案有:aspx.cs、.cs、.ashx 和 dll檔案
aspx.cs 是頁面後的程式碼,aspx負責顯示,伺服器端的動作就是在aspx.cs定義的
.cs是類檔案,公共類之類的
.ashx 是一般處理程式,主要用於寫 web handler,可以理解成不會顯示的 aspx頁面,不過效率更高
dll 就是 cs檔案編譯之後的程式集
程式碼審計小結
通過搜尋引擎查閱相關函式的用法和作用,見的多了自然就進入這個領域了。初學程式碼審計,會有大批程式碼看不懂,只有死磕下去,才會看懂越來越多的程式碼,也為了以後審計邏輯漏洞打下基礎。但是,也不能盲目死磕一個不會的點,這個度只能自己把握。
另外,要有一種屬於個人的審計思路,每個人的習慣不同,程式碼審計的方式也就不同。
當然一定要記住最上邊說的三個方向點!危險函式,功能,通讀程式碼
相關文章
- webgoat白盒審計+漏洞測試WebGo
- 程式碼滲透測試服務 白盒審計詳情
- 白盒測試程式碼應該怎麼測試
- 滲透測試工具方法基礎程式碼審計篇
- 黑盒測試、白盒測試與灰盒測試方法
- 黑盒測試和白盒測試
- 細說白盒測試
- 測試方法-白盒/黑盒
- 對於黑盒測試、白盒測試、灰盒測試你瞭解多少?
- 軟體測試實驗二 | 白盒測試
- 重溫黑盒、白盒與灰盒測試方法
- 知識普及:黑盒測試、白盒測試、灰盒測試之間的區別
- 白盒測試—六種覆蓋方法
- [程式碼審計基礎 15]phpmcs_v9.6 rcePHP
- 軟體測試中的白盒測試是什麼?
- PHP自動化白盒審計技術與實現PHP
- 軟體測試要學什麼(2)白盒測試詳解教程
- WinAMS―嵌入式軟體白盒測試工具介紹
- 有大佬做安卓平臺的白盒測試麼?安卓
- java程式碼審計人工漏洞檢測方法Java
- JFinalcms程式碼審計
- buu 程式碼審計
- CSCMS程式碼審計
- 基於Python的自動化程式碼審計Python
- 什麼是程式碼審計?程式碼審計有什麼好處?
- Graudit程式碼安全審計
- 程式碼審計————目錄
- 程式碼審計是什麼?程式碼審計操作流程分為幾步?
- python 安全編碼&程式碼審計Python
- 測試基礎(四)Jmeter基礎使用JMeter
- 通用的 Java 介面白盒測試,大家都是怎麼進行的呢?Java
- 哪些業務場景需要做程式碼審計?程式碼審計很重要嗎?
- 軟體測試培訓之:白盒測試的語句覆蓋法和判定覆蓋法
- oasys系統程式碼審計
- Web測試基礎-Html基礎知識WebHTML
- 一、介面測試基礎
- 一、測試基礎(3)
- 軟體測試基礎