當駭客很酷嗎?
早先,我也是半個駭客,經常在學校的教務系統看妹子。透過 URL 註入的方式,可以輕鬆進入別人的個人資訊頁。後來,又透過某種方式發現了管理員的賬號,管理員又沒有修改預設密碼,於是就登入了管理員後臺。
這件事,我就偷偷地說到了這,不能讓我們家花仲馬知道。
後來,我更關註於構建更強壯的 Web 應用,而不是關註在安全領域上。因為我覺得創造是一件更開心的事。
然而 Web 安全,對於一個 Web 從業人員來說,仍然是一個非常重要的課題。
每年因為網站漏洞,都為各家公司帶來大量的損失,如去年的 Mirai 蠕蟲病毒,前段時間微信支付“0元購”漏洞。在這一背景下,Web 安全越來越受重視。除了開發人員,也出現了越來越多地 Web 安全從業者。
那麼問題來了,如何進階為一名 Web 安全高手呢?
1
基礎:修煉內功
對於白帽從業者來說,一般都是從 XSS、SQL 註入等簡單的漏洞研究入門的。需要對於這兩大類漏洞原理,有一定數量的實踐和經驗。
除了瞭解各種相關的術語,還需要對於 Web 應用要有一個基本的認識。在這的基礎上,對於 HTML、JavaScript 要有基礎的瞭解和使用,它們是 Web 應用架構中最重要的基礎元素。其直接執行在瀏覽器上,渲染出網頁。
對於非開發人員的 Web 安全從業者來說,身邊有相應的 Cookbook 也是一個不錯的方式。
隨後,便需要進一步瞭解 Web 前端應用的資料是如何通訊的——輸入及輸出。
比如,對於不是使用前後端技術的傳統 Web 應用來說,資料可能透過 form data 或者 URL 的形式傳遞到後臺;對於單頁面應用來說,資料是透過 json 的形式傳遞到後臺。後臺處理完這些資料,再傳回到前端供使用者閱讀。
有空了,再去深入瞭解諸如 HTTP 協議等一系列底層知識。
2
尋找合適的學習資料
不論是 Web 安全還是 Web 開發,他們都有著基本一致的學習體驗。先找到感興趣的知識點,學習嘗試,一點點把玩。再找到一個合適的技能圖譜,再按圖索驥地去補充知識。
不過,對於初入 Web 安全領域的新人來說,要找到合適的資料不是一件容易的事。有這麼幾本書還是可以推薦一下的:
《白帽子講Web安全》
《駭客攻防技術寶典—Web實戰篇》
《Web前端駭客技術揭秘》
在學習到一定程度之後,可以按照技能圖譜去瞭解更廣泛的知識,諸如 StuQ 的安全工程師必備技能圖譜。
3
學好相關工具
對於開發人員來說,最簡單的安全工具是在持續整合上,整合對程式碼掃描、依賴檢測相關的事項。
對於 Web 安全從業者來說,有一系列不同的滲透工具可以瞭解和使用。
當我們對一個網站進行分析時:
可以使用 sqlmap 進行滲透測試,以利用 SQL 註入漏洞;
可以使用 Wireshark + tcpdump 來進行抓包分析;
利用 Chrome 瀏覽器的開發者工具,來瞭解 API 使用者是如何認證和授權等內容;
當我們對一個伺服器進行分析時,可以使用 nmap 進行埠掃描;
……
早前,我使用 Wireshark + TCPdump 用來破解藍芽通訊協議, Hack 了一個機器人,並編寫了相應的應用程式。
詳見《我是如何Hack一個機器人的?》https://www.phodal.com/blog/how-to-hack-a-robot/
同時,活用各種搜尋引擎搜尋,諸如:
網路空間的搜尋引擎 ZoomEye、Shodan
常用的 Google——用來搜尋知識
不過,在喜歡造輪子的我看來,最合適的工具,還是自己去造輪子。
4
融入圈子
我越來越關註 Web 安全,是因為它可以帶來一些額外的樂趣。並且,還能減少編寫程式碼的 BUG。而關註也就意味著,瞭解最新的資訊和技術等。自去年的 MongoDB 未授權訪問漏洞之後,我關註了安全相關的公號,諸如 Freebuf、安全圈等等。
隨後去瞭解、認識、結交更多相關領域的人,以讓融入這個圈子。同時關註一些在安全領域有輸出的大V,諸如知乎上的 @餘弦,他是網路安全、駭客 (Hacker)、資訊保安話題的優秀回答者。
然而,更重要的是,保持興趣 + 持續練習。
也許你在學習的過程中,會無規劃、效率低、難自律、沒方向、沒答疑、沒時間、太孤獨、沒互動……
那麼,網易雲課堂微專業推出的《Web安全工程師》適合你,由一眾網易安全大咖打造,網安大咖搭配熱門乾貨,一鍋濃濃雞湯新鮮出爐。
為了讓愛好者們“無痛入門”,準備了一個免費的直播課:《Web安全工程師職場就業路線圖》
為了讓大家不錯過直播時間,以及便於直播後答疑和交流,專門準備了一個QQ群,長按掃碼就能入群,群號:792511982。
需要說明的是,這個直播本身是免費的,入群也是免費的,所以不妨一看。