給初學者的Web安全指南
網際網路進入下半場,競爭越發的激烈,能與人工智慧比肩的熱門職業已然不多。而網際網路越發達,各大企業所面臨著各種網路安全問題會越發的嚴峻,Web安全工程師的人才缺口仍在不斷擴大。
經濟理論揭示了需求大於供給時,供給方必然漲價的市場定論,也為此奠定了Web安全工程師高薪資的市場基礎。
安全技術是一個完全可量化的技能,隨著Web安全技能的不斷提升,可預見的月均薪資水準也將水漲船高。有60%以上的Web安全工程師,月薪達到15K以上。
圖1: Web安全工程師整體月均薪資分佈
一名合格的Web安全工程師是要具備很多的知識點,不但要對網站架構熟悉,通訊協議,測試流程與測試工具使用,漏洞利用指令碼編寫,還有需要經驗的積累等。
每一項能力中都是需要精心細琢,深度研究,才能進階到一個更高的程度,過程中少不了前輩的引導、個人的努力和堅持。
基礎網路協議/網站架構
網際網路的本質也就是一系列的網路協議,不管是C/S架構還是B/S架構都是基於網路通訊,滲透人員需要了解到通訊流程以及資料包走向等,才能使用相應手段跟工具去做滲透。
Web網站常見的協議以及請求方式,這些在做滲透的時候必不可少的。甚至也是可以利用協議來做滲透測試。所有的知識都是息息相關的,必不可少。
基礎的程式設計能力
一名Web滲透測試人員必須具有有一定的基礎程式設計能力的,每天都跟程式碼打交道,如果不會寫程式碼或者看不懂程式碼,十分吃虧。
例如需要自己寫一款適合此刻情景漏洞的工具,如果不會寫會極大降低效率。再者就是關於後續進階的程式碼審計問題,如果不會寫程式碼,程式碼也看不懂那麼就不知道怎麼從原始碼去審計漏洞去發現原因。對於只會利用工具的滲透人員跟會寫程式碼的滲透測試人員來說,在遇到某種情況下,優勢一下就能體現出來了。
滲透測試工具
滲透測試工具網上開源的很多,作為滲透測試人員會使用滲透測試工具這是必不可少的。一些優秀的工具要學會利用,還有就是要學會自己寫工具。
例如在做滲透測試中,好比說大量的資料FUZZ,如果說人工操作將大大浪費時間跟效率。如若網上的工具不符合此漏洞的情景,這時候就需要自己手動寫工具去除錯。當然網上優秀的工具已不少,優先使用會極大提高我們的效率。
瞭解網站的搭建構成
試著去了解一個網站的形成架構,語言,中介軟體容器等。如果不知道一個網站是如何搭建起來的,那麼做滲透的時候根本就沒有對應的滲透測試方案。
例如一個網站採用了某種中介軟體,或者什麼資料庫,再或者是採用網上開源的CMS。如果對於這些不瞭解,那麼就只能在網頁上徘徊遊走,甚至無從下手。瞭解一個網站的搭建與構成,對於自己前期做踩點與資訊收集有著很大的幫助,才能事半功倍。
漏洞原理(重要)
滲透測試人員肯定是要對漏洞原理去深入研究探究,這樣會從中發現更多有“趣”的東西。所有有“趣”的東西是可能你在原有的基礎漏洞上配合其他漏洞,從而達到組合漏洞,這樣效果有可能會更佳。
不去了解漏洞原理,漏洞產生,不去從程式碼層出發,那就不知道漏洞起因,到後期的滲透利用以及修復方案,就會顯得吃力,這時候有可能你就需要去查資料,從某種形式的降低了速度與效率,所以,知識與積累必不可少。
報告撰寫能力
每次做完滲透測試之後,都是需要一個滲透測試報告,所以報告撰寫能力也是不可缺。
對於自己漏洞挖掘的梳理,網路結構印象加深,這是後期與客戶溝通還有與開發對接提修復建議能起到很大的幫助,這些細小的細節決定著你服務的質量與你的責任感,所以這些都是需要不斷的積累與提升的一個過程。
對於想要入門Web安全的同學來說,學習過程中,尤其是前期學習千萬不要放棄。同時,學習的過程中要記錄圖文並茂的筆記。
作為知識的積累,最重要的進行實踐,實踐,實踐!在實踐中發現問題,解決問題,安全非一朝一夕之事。
如果你有興趣入門Web安全,以下的幾本書籍資源可以推薦給你:
1.《白帽子講Web安全》
2.《白帽子講瀏覽器安全》
3.《Sql注入攻擊與防禦》
4.《XSS跨站指令碼攻擊剖解與防禦》
5.《一本書讀懂TCP/IP》
6.《Metasploit滲透測試指南》
當然,如果找到一個有經驗的老師系統指導你學習,並以練習的方式針對性對你的問題進行反饋,這樣的學習更高效!
為了讓大家更進一步瞭解Web安全的學習路徑以及企業對安全人才的實際需求,12月6日晚上20點,我們邀請到網易高階安全工程師石劉洋在網易雲課堂進行一場主題為《一枚豬場Web安全工程師の日常》的免費的直播分享。
掃描上方海報QQ群二維碼
(QQ群號: 792511982),
即可加入直播交流群~
在直播開始之前,助教MM將會提醒大家,並揮舞小皮鞭敦促大家去聽課哦~
最後,希望大家能成功從一名“安全小白”進階為Web安全高手,行走在資訊保安的江湖之中。
相關文章
- 給初學者的以太坊路線圖指南
- 一份送給Java初學者的指南Java
- Kotlin初學者指南Kotlin
- Nginx初學者指南Nginx
- Groovy初學者指南
- 【譯】GraphQL 初學者指南
- OAuth 2.0初學者指南OAuth
- Apache Hudi初學者指南Apache
- 給初學者的 fc 示例教程
- 給初學者的 type 命令教程
- Electron 的初學者詳細指南
- 給初學者看的 shuf 命令教程
- [譯] 給初學者的 Jupyter Notebook 教程
- Java初學者入門指南Java
- React Redux 的初學者詳盡指南ReactRedux
- 初學者怎麼學Web前端?Web前端
- 給初學者的RxJava2.0教程(三)RxJava
- 給初學者的RxJava2.0教程(七)RxJava
- 給初學者的 RxJava2.0 教程 (四)RxJava
- 寫給初學者的Linux餐前小菜Linux
- 圖資料庫初學者指南資料庫
- 5S管理--初學者指南
- [譯]寫給初學者的Tensorflow介紹[2]
- 一個牛人給Java初學者的建議Java
- 給Python初學者的最好練手專案Python
- Linux入門(2)_給初學者的建議Linux
- [譯] 網站優化初學者指南網站優化
- 模糊測試: 初學者入門指南
- 價值流圖 (VSM) 初學者指南
- 零基礎學Java?給初學者的建議Java
- 給初學者一些學習Python的建議Python
- 給初學者的DLL Side Loading的UAC繞過IDE
- 寫給 Linux 初學者的一封信Linux
- 給程式設計初學者的一份Java入門指南,課程禮包,請自取程式設計Java
- 自動機器學習和AI初學者指南機器學習AI
- 給Python初學者的一些程式設計技巧Python程式設計
- 寫給初學者的Linux errno 錯誤碼機制Linux
- RCA---給初學者的根本原因分析案例