1. 程式人生 > >程式碼審計系列篇一之程式碼審計學習思路

程式碼審計系列篇一之程式碼審計學習思路

學習程式碼審計要熟悉三種技術,分四部分走

一:程式語言  
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的系列課程,在以視訊圖書輔助,讓跟上節奏的同學人人都能程式碼審計。