前言
首先,你要高度熱愛網絡安全這個領域,你要問問自己是否是真的熱愛這個行業,自己是否會因為各種了理由半途而廢,放棄掉你的熱愛。衡量熱愛的方法特別特別地簡單:看看自己主動花了多少時間在哪些事情方面,重點:『主動 + 時間』。兩個條件都不能滿足的,請自行將自己PASS掉,別浪費時間。其次滲透行業最注重的就是實戰能力,并且知識更新較快,例如一個廠商更新了補丁就要去跟進,去掌握可能成為薄弱的滲透測試點,利用Nday作為突破。這也導致了你要有時間去搜集去跟進,各大網絡軟件廠商的更新內容。
滲透測試的技能點多的數不過來,比如要搞WEB滲透,你就要去了解一個東西,你要先知道他是怎樣構成的。那么,WEB滲透前期的入門階段需要涉及到那些內容那?
通信協議:TCP、HTTP、HTTPS
操作系統:linux、windows
服務架設:Apache、Nginx、LAMP架構
數據庫:MySQL、SQL Server、Oracle
編程語言:前端語言(html/css/JAVAScript)、后端語言(php/Java/ASP/Python/ target=_blank class=infotextkey>Python)
上面的內容,如果全部都深入學習,估計很大一部分人都會對安全行業失去興趣,所以才有了很多做滲透測試的都是半路出身,本身已經對Web開發技術非常的熟悉,或者本身就是做運維的,對網絡的架構有熟悉的認知。
但學習其實并非完全沒有捷徑,這個捷徑就是知識結構的整體藍圖,知識間的相互依賴關系和學習的先后次序,但是一開始就能擁有上帝視角的人那真的太幸運了。所以我整理和集合了一下自己學習滲透測試時的先后順序和依存關系整理出了一份腦圖,讓同學們也可以從全景的角度去認識這門技術,讓你也可以成為那個幸運的人。
當然所謂的上帝視角,也只不過時一個知識體系的框架,讓你更加容易的入門和學習,更重要的依然是文章開頭所說的『主動 + 時間』
入門路線
滲透測試屬于信息安全行業,準確的說是網絡計算機/IT行業,那么肯定少不了與程序和代碼打交道。上面的腦圖的內容集合了想要學習滲透測試所需要具備的代碼基礎,了解的程序等等。
系統核心基礎:
了解虛擬機,虛擬機的作用,搭建虛擬機系統(Windows2008,Windows7,centos7,Kali Linux)
了解基本的網絡知識、什么是IP地址(255.255.255.255)段劃分、什么是A段、B段、C段等。windows,linux 基本語法,常用系統命令,網管協議,傳輸方式,網絡傳輸協議,系統權限劃分。
WEB核心基礎:
了解http(超文本傳輸協議)協議概念、工作原理,WEB的靜態頁面和WEB動態頁面,B/S和C/S結構。基本的網絡架構、例如:Linux + Apache + MySQL + php。基本的Html語言,就是打開網頁后,在查看源碼里面的Html語言,了解一種基本的腳本語言PHP,或JSP,APS等。
深入學習一門數據庫語言,建議同學們從MySql數據庫學習,簡單易上手,和編程語言一個道理一通百通。
WEB滲透:
開始學習WEB安全漏洞的知識、SQL注入、XSS跨站腳本漏洞、CSRF、解析漏洞、上傳漏洞、命令執行、弱口令、萬能密碼、文件包含漏洞、本地溢出、遠程溢出漏洞等等腦圖中都有涉及和名詞,使用虛擬機搭建靶機,復現漏洞的利用。
內網滲透:
利用系統漏洞進行提權,了解各種漏洞編號,和漏洞利用工具Metesploit學習
。到這里有同學可能都說kali很優秀為什么沒有說學習kali,如果你經常挖洞就知道,kali常用的工具真的不多,很多工具在Windows安裝也很方便,為什么要開個虛擬機配置網絡,在打開kali使用那,繞WAF依舊是靠手工,工具不靠譜的。