程式碼審計基礎--白盒測試
程式碼審計原理
檢查原始碼中的安全缺陷,檢查程式原始碼是否存在安全隱患,或者有編碼不規範的地方,通過自動化工具或者人工審查的方式,對程式原始碼逐條進行檢查和分析,發現這些原始碼缺陷引發的安全漏洞,並提供程式碼修訂措施和建議。
基本思路
主要由三個方面組成:
關鍵詞
功能(一般框架中)
通讀程式碼
關鍵詞
對一些存在漏洞的關鍵函式名進行定向篩選。
功能
對可能存在漏洞的相關功能進行審計,常見的有:
程式初始安裝
站點資訊洩漏
檔案上傳
檔案管理
登陸認證
資料庫備份恢復
找回密碼
驗證碼
通讀程式碼
通讀全文發作為一種最麻煩的方法也是最全面的審計方法,但是該方法也是一種必要的方法。
瞭解整個應用的業務邏輯,才能挖掘到更多更有價值的漏洞。
語言特性—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
- 白盒測試程式碼應該怎麼測試
- 滲透測試工具方法基礎程式碼審計篇
- 黑盒白盒測試工具
- 細說白盒測試
- 白盒測試、灰盒測試以及黑盒測試的區別
- 黑盒測試和白盒測試的關係
- 軟體測試實驗二 | 白盒測試
- 知識普及:黑盒測試、白盒測試、灰盒測試之間的區別
- 軟體測試中的白盒測試是什麼?
- PHP自動化白盒審計技術與實現PHP
- [程式碼審計基礎 15]phpmcs_v9.6 rcePHP
- 軟體測試要學什麼(2)白盒測試詳解教程
- 有大佬做安卓平臺的白盒測試麼?安卓
- 黑盒測試、白盒測試、單元測試、整合測試、系統測試、驗收測試的區別與聯絡...
- 程式碼審查“查”什麼(2):測試
- WinAMS―嵌入式軟體白盒測試工具介紹
- Oracle 審計和測試操作Oracle
- java程式碼審計人工漏洞檢測方法Java
- 軟體測試培訓之:白盒測試的語句覆蓋法和判定覆蓋法
- 測試基礎(四)Jmeter基礎使用JMeter
- CSCMS程式碼審計
- PHP程式碼審計PHP
- buu 程式碼審計
- 關於Peer Review、程式碼評審和測試驅動View
- 測試管理及測試工具盒集
- Web測試基礎-Html基礎知識WebHTML
- 軟體測試基礎
- 單元測試基礎
- laravel 基礎教程 —— 測試Laravel
- 一、介面測試基礎
- 一、測試基礎(3)
- 什麼是程式碼審計?程式碼審計有什麼好處?
- Graudit程式碼安全審計
- 程式碼審計————目錄
- aspx程式碼審計-2
- JFinalcms程式碼審計