截至到2018年底,我國網(wǎng)民規(guī)模已達8.02億人,互聯(lián)網(wǎng)極度發(fā)達衍生的開放性和安全漏洞帶來的風險無處不在,黑客攻擊行為越加猖狂,組織性更強,作為一名Linux運維小哥,我也是由原來的“受害者”誤打誤撞進入Web安全領(lǐng)域。下面是我給大家分享的這幾年的學習經(jīng)驗。
入門Web安全需要具備哪些基本技能?
想給網(wǎng)站彈個窗,獲取cookie?(java script的基本語法要熟悉吧?)
想獲取到網(wǎng)站的用戶數(shù)據(jù)?(MySQL、MSSQL、Oracle、PostgrSQL基本操作命令你要懂吧?)
想通過命令執(zhí)行漏洞獲取服務(wù)器信息?(Linux的命令、目錄文件信息心里得有數(shù)吧?)
想搞清楚自己的網(wǎng)站為啥被人掛馬了?(webshell執(zhí)行原理不能不知道吧?)
...
知識面,決定看到的攻擊面有多廣。 知識鏈,決定發(fā)動的殺傷鏈有多深。
一個合格的Web安全測試人員應(yīng)該具備以下技能:
A. 工具使用能力
工具讓每個人都有發(fā)現(xiàn)漏洞的機會,但真正掌握工具而不是被工具掌握的人才能成為優(yōu)秀的白帽子。工欲善其事必先利其器,好的安全測試工具可以幫助白帽子快速、有效的定位到漏洞可能存在的點,同時輔助Web安全測試人員完成漏洞利用(exp)和漏洞證明(poc)。所以,作為一名Web安全測試人員,熟練掌握各種安全測試軟件是基本功。
目前web安全測試人員常用的工具有:burpsuite、sqlmap、wireshark、fiddler、avws等,其中burpsuite和sqlmap是漏洞挖掘過程中使用最多也是最高效的神器。
B. 編程能力
只有漏洞原理了然于胸,才能做到隨手撿洞。只有自己具備編寫工具的能力,才能做到不被工具束縛。
另外,雖然CC ++JAVA 這些編程語言在Web安全測試中都可以寫出很多強大的工具(比如業(yè)內(nèi)最知名的工具burpsuite就是使用Java語言編寫的) ,但是這些語言對于初學者來說并不友好,要達到上手使用的程度往往需要花費大量的時間和精力,所以我并不推薦新手在初學階段去學習這些語言。
我建議大家學習python,因為相對而言Python代碼簡潔,學習難度小,而且Python程序小巧、占用系統(tǒng)資源少、可移植性強。
對于Web安全人員來說,Python就像是普羅米修斯手里的火種,它擁有無限可能。
C. 代碼審計能力
廠商現(xiàn)在對于安全的重視,使得很多時候僅憑黑盒測試無法做到全方位的安全評估,這個時候就需要我們具備一定的代碼審計能力對項目進行白盒測試。通過分析源代碼,有針對性的對一些可能存在漏洞的點進行審計,實現(xiàn)高效精準測試。
另外,很多廠商的生產(chǎn)環(huán)境都會使用一些開源服務(wù),當挖掘漏洞過程中遇到瓶頸時,審計這些開源服務(wù)往往也是一個突破口。
D. 洞察能力
Web安全是一個需要不斷學習的技術(shù),Web安全測試人員要與時俱進,時刻關(guān)注最新漏洞動態(tài)。
很多時候一些影響力大的漏洞都是從國外披露的,所以我們也應(yīng)該具備隨時獲取全球Web安全資訊(科學上網(wǎng)和英語基礎(chǔ))的能力。
E. 懂法守法
任何未經(jīng)授權(quán)的滲透測試行為都可以構(gòu)成犯罪,作為一名Web安全測試人員,必須懂得用法律保護自己,同時也保證不觸犯法律。
F. 報告文檔編寫能力
懂得如何寫出一份完整有效的漏洞報告,可以在節(jié)省你和廠商的時間同時也提高雙方的工作效率。
這里針對上述各種能力,我匯總了一個思維導圖,學習資源的具體獲取方式都可以在搜索引擎中獲取到。當然,要是有一些靠譜的Web安全工程師帶是最好的。
