學習代碼審計要熟悉三種技術,分四部分走
一:編程語言
1:前端語言 html/javascript/dom元素使用 主要是為了挖掘xss漏洞 jquery 主要寫一些涉及到CSRF腳本使用的或者DOM型XSS,JSON劫持等
2:后端語言 基礎語法要知道例如 變量類型,常量,數組(python 是列表,元組,字典),對象,類的調用,引用等, MVC設計模式要清楚,因為大部分目標程序都是基於MVC寫的,包括不限於php,python,java。不用會寫,但是一定能看懂,而且要看懂邏輯,知道哪些功能點會用什么方式去寫,可能會出現什么類型漏洞,方便挖掘常規類型漏洞,更方便挖掘邏輯漏洞
二:滲透技巧
1:工具滲透 例如sqlmap, awvs,burpsuite等 為什么使用 能用工具挖掘到你還人工審計干什么,及輔助調試
2: 手工滲透
3: 原因
為什么要懂滲透技巧 其一在於你找到漏洞的時候,通常的開發功底是不足以構造PAYLOAD的,需要一些特殊的PADYLOAD構造方式。其二你在找漏洞時,可以輔助你更快的去挖掘漏洞
三:輔助技術
1:協議 例如HTTP傳輸方式,dict:// file://等,懂得Header頭如何偽造 比如XFF注入時的x-forward-for,cookie注入,CRLF身份請求偽造等。
2:程序搭建 你審計時要學會程序搭建,不然靜態審計時,無法進行動態調試,方便你更快更高效挖掘漏洞
3:URL鏈接構造或者URL路由
4:SQL語句及數據庫特性 這個主要涉及到SQL注入及sql注入的payload構造繞過
5:中間件及服務器特性 有的代碼漏洞 是基於中間件及服務器特性造成的 例如IIS6.0的解析 nginx的解析漏洞等
6:審計輔助工具 ①IDE,phpstrom 審計工具追蹤代碼時用到,可與xdebug綁定使用方便調試②源代碼審計工具 rips,seay審計工具,輔助你更快的找到漏洞產生點
四:漏洞挖掘
1:懂得漏洞類型產生原理
2:懂得危險函數的參數不當使用可造成的漏洞威脅 例如涉及到命令執行代碼執行的eval,assert,array_map,usort等,例如本身函數的脆弱性,is_numeric,md5等
3:曉得php函數的脆弱性 比如==與=== ,===並不是強大無比不可繞過的,也要結合代碼設計邏輯
4:php的淫技技巧
5:php版本及配置不當結合函數不當利用造成的漏洞威脅
6:成長階段:demo案例練習->已出漏洞代碼審計案例分析->小型cms單一漏洞實例練習->小型cms漏洞多種類型漏洞實例挖掘練習->框架漏洞挖掘實例練習->技巧挖掘
不要覺得代碼審計很容易,也不要覺得代碼審計很難。重在堅持,重在分析,你做到了,0day就在眼前,我們先以文字分享代碼審計0到1的系列課程,在以視頻圖書輔助,讓跟上節奏的同學人人都能代碼審計。