絡(luò)安全入門學(xué)習(xí)路線:從零基礎(chǔ)到滲透測(cè)試實(shí)戰(zhàn))
1. 先給“黑客”祛魅這個(gè)行當(dāng)?shù)降自谧鍪裁唇?jīng)常有人私信問(wèn)我同一個(gè)問(wèn)題“我想學(xué)黑客能不能教我怎么黑別人的網(wǎng)站”說(shuō)實(shí)話我第一次接觸網(wǎng)絡(luò)安全的時(shí)候也是帶著這種好奇入坑的。但等你真正進(jìn)了這個(gè)圈子在靶場(chǎng)里泡了半年、看了一整年的漏洞報(bào)告再回頭看“黑客”這兩個(gè)字你會(huì)覺(jué)得當(dāng)初的想法又中二又危險(xiǎn)。現(xiàn)在很多新人被短視頻和影視劇帶偏了以為黑客就是穿著帽衫、黑掉攝像頭、在鍵盤上噼里啪啦敲幾下就能轉(zhuǎn)走別人賬戶里的錢。真實(shí)的網(wǎng)絡(luò)安全行業(yè)完全不是這樣。先說(shuō)結(jié)論這個(gè)行業(yè)的絕大多數(shù)從業(yè)者干的是防御、檢測(cè)、修復(fù)、合規(guī)的活兒真正做攻擊滲透的人也必須有授權(quán)才能動(dòng)手。我們?nèi)ψ永锇迅闫茐牡姆Q為“黑帽”把發(fā)現(xiàn)漏洞并提交給官方修復(fù)的稱為“白帽”兩者之間還有“灰帽”——就是那種沒(méi)授權(quán)但也沒(méi)惡意、純粹炫技的人。國(guó)內(nèi)還有個(gè)有年代感的詞叫“紅客”泛指有愛(ài)國(guó)立場(chǎng)的技術(shù)愛(ài)好者但嚴(yán)格來(lái)說(shuō)這不是職業(yè)分類。那“駭客”又是什么這個(gè)詞其實(shí)是對(duì)英文hacker的音譯變體但在中文語(yǔ)境下更多人用“黑客”泛指技術(shù)高手“駭客”則帶有一點(diǎn)“惡意入侵者”的色彩。熱詞里還有個(gè)“白客”這個(gè)詞現(xiàn)實(shí)中很少用出現(xiàn)在中文互聯(lián)網(wǎng)早期指代正面的安全技術(shù)人員。說(shuō)白了稱謂不重要重要的是你掌握了技術(shù)之后選擇站哪一邊。再說(shuō)說(shuō)網(wǎng)絡(luò)安全這個(gè)領(lǐng)域到底包含什么。很多人以為只有“滲透測(cè)試”才是網(wǎng)絡(luò)安全其實(shí)這只是其中一個(gè)方向。完整的知識(shí)體系包括網(wǎng)絡(luò)與系統(tǒng)安全防火墻策略、入侵檢測(cè)、基線檢查、系統(tǒng)加固Web安全SQL注入、XSS、CSRF、文件上傳漏洞的挖掘與修復(fù)安全運(yùn)營(yíng)SOC監(jiān)控、日志分析、威脅狩獵、事件響應(yīng)密碼學(xué)與協(xié)議安全加密算法、TLS/SSL、認(rèn)證機(jī)制二進(jìn)制與逆向工程漏洞挖掘、病毒分析、軟件破解合規(guī)與等保等級(jí)保護(hù)測(cè)評(píng)、數(shù)據(jù)安全法、行業(yè)監(jiān)管要求所以你問(wèn)我“從零基礎(chǔ)入門到精通看這一篇夠不夠”我會(huì)老實(shí)告訴你一篇文章不可能讓你精通但可以幫你把這潭水看清楚知道先干什么、后干什么、哪些坑不能踩。這篇文章就是給那些真正想入行、想自學(xué)的新手畫一張完整的地圖。在地圖拿到手之前千萬(wàn)別急著買什么“黑客神器工具包”十有八九是割韭菜或者打包木馬的。2. 從零開(kāi)始的學(xué)習(xí)路線地基打不牢遲早要返工新手最容易犯的毛病就是一上來(lái)就下載各種攻擊工具對(duì)著某個(gè)網(wǎng)站瞎試。這不叫學(xué)習(xí)叫給自己找麻煩。我見(jiàn)過(guò)太多人折騰了三個(gè)月工具會(huì)點(diǎn)了但連“為什么這個(gè)漏洞存在”都說(shuō)不清楚。面試官一問(wèn)TCP三次握手和HTTP請(qǐng)求流程直接卡殼。工具永遠(yuǎn)只是表達(dá)思想的手段漏洞的本質(zhì)是代碼、協(xié)議、配置中的邏輯缺陷。2.1 第一階段把計(jì)算機(jī)基礎(chǔ)打扎實(shí)不管你未來(lái)想做滲透測(cè)試、安全運(yùn)維還是安全研發(fā)以下三門課是繞不過(guò)去的計(jì)算機(jī)網(wǎng)絡(luò)重點(diǎn)學(xué)OSI七層模型、TCP/IP協(xié)議族、HTTP/HTTPS協(xié)議、DNS解析過(guò)程。不用背報(bào)文格式但要理解握手、揮手、狀態(tài)碼、請(qǐng)求方法這些概念。操作系統(tǒng)Windows和Linux至少熟一個(gè)我建議優(yōu)先Linux因?yàn)榇蟛糠址?wù)器、靶場(chǎng)環(huán)境、安全工具都跑在Linux上?;A(chǔ)命令要會(huì)文件操作、權(quán)限管理、進(jìn)程查看、網(wǎng)絡(luò)配置。一門編程語(yǔ)言首選Python用來(lái)寫腳本、寫POC概念驗(yàn)證代碼。不用學(xué)到精通能寫爬蟲、能處理報(bào)文就夠用。HTML和JavaScript的讀寫能力也要有畢竟Web漏洞是入門的主流方向。這個(gè)階段不用追求速度每天兩小時(shí)堅(jiān)持三個(gè)月左右基礎(chǔ)就能達(dá)到“能聽(tīng)懂圈內(nèi)人在說(shuō)什么”的水平。2.2 第二階段搭建自己的“合法靶場(chǎng)”光看書不練手永遠(yuǎn)學(xué)不會(huì)安全。但練習(xí)必須在自己搭的靶場(chǎng)里做這是原則問(wèn)題。具體怎么搭呢虛擬化平臺(tái)裝一個(gè)VMware Workstation或者VirtualBox這是免費(fèi)且主流的方案。靶機(jī)系統(tǒng)推薦先從DVWADamn Vulnerable Web Application開(kāi)始它自帶低中高三檔難度的漏洞環(huán)境專門給新手練Web漏洞。進(jìn)階可以裝VulHub、Sqli-labs、Upload-labs這些開(kāi)源靶場(chǎng)。攻擊機(jī)裝一個(gè)Kali Linux它預(yù)裝了大量的滲透測(cè)試工具。雖然很多人詬病“Kali是腳本小子的玩具”但它確實(shí)是新手認(rèn)識(shí)工具生態(tài)最好的起點(diǎn)。我自己給新手的建議是第一次配環(huán)境別追求復(fù)雜先跑通DVWA再說(shuō)。我在教學(xué)過(guò)程中發(fā)現(xiàn)很多新人卡死在環(huán)境搭建上裝了三天系統(tǒng)連服務(wù)都起不來(lái)這是非常消耗信心的一步。如果實(shí)在裝不上可以考慮云上靶場(chǎng)現(xiàn)在不少培訓(xùn)機(jī)構(gòu)提供在線實(shí)驗(yàn)環(huán)境重點(diǎn)是先把練習(xí)做起來(lái)。2.3 第三階段跟著漏洞原理“打怪升級(jí)”基礎(chǔ)打牢、靶場(chǎng)跑通之后就可以按專題逐個(gè)攻克Web漏洞了。每個(gè)漏洞的學(xué)習(xí)路徑是固定的原理 - 手工復(fù)現(xiàn) - 工具輔助驗(yàn)證 - 防御方案。這一篇不可能把每個(gè)漏洞都寫全但我會(huì)在后文把最核心的幾個(gè)漏洞原理講透你先建立整體認(rèn)知然后按這個(gè)框架逐個(gè)深挖。學(xué)習(xí)路線圖大概是HTML/JS基礎(chǔ) - SQL注入 - XSS跨站腳本 - CSRF - 文件上傳 - 命令執(zhí)行 - SSRF - 反序列化。這條路走下來(lái)恭喜你已經(jīng)超越90%的“百度網(wǎng)盤黑客”了。3. 信息收集滲透測(cè)試?yán)锉坏凸赖摹暗谝徊健蔽矣浀脦н^(guò)的很多新人一拿到靶機(jī)就急著用掃描器跑跑完看報(bào)告一頭霧水。這就是典型的“還沒(méi)學(xué)會(huì)走就想跑”。信息收集是滲透測(cè)試的起點(diǎn)也是最考驗(yàn)?zāi)托暮图?xì)心的一步。在真實(shí)的攻防演練中拿到一個(gè)目標(biāo)之后前期偵察可能占掉整個(gè)項(xiàng)目四分之一甚至更多的時(shí)間。信息收集的核心目標(biāo)很明確搞清楚這個(gè)目標(biāo)的“攻擊面”有多大。通俗說(shuō)就是找到目標(biāo)暴露在互聯(lián)網(wǎng)上的所有入口——有多少臺(tái)服務(wù)器、多少個(gè)IP、哪些端口開(kāi)著、跑著什么服務(wù)、用的什么中間件和框架、有沒(méi)有旁站和子域名、有沒(méi)有暴露的管理后臺(tái)和敏感文件。新手可以先掌握以下五類信息收集手段域名與子域收集子域名可以擴(kuò)大攻擊面常見(jiàn)思路是通過(guò)證書透明度Certificate Transparency、DNS爆破等方式收集。IP與端口掃描拿到IP后掃描開(kāi)放端口看看跑的是Web服務(wù)、數(shù)據(jù)庫(kù)還是SSH然后對(duì)應(yīng)找已知漏洞。Nmap是必學(xué)工具-sS半開(kāi)掃描最常用。指紋識(shí)別判斷網(wǎng)站用了什么CMS如WordPress、什么框架如ThinkPHP、Spring、什么中間件如Nginx、Apache、Tomcat不同指紋對(duì)應(yīng)不同漏洞庫(kù)。工具可以用瀏覽器插件Wappalyzer或者命令行工具WhatWeb。目錄與接口枚舉很多敏感路徑不會(huì)被搜索引擎收錄需要主動(dòng)去“猜”。經(jīng)典工具是dirsearch跑一遍常見(jiàn)字典往往能掃出后臺(tái)登錄頁(yè)、備份文件、API接口文檔。Google Hacking與歷史信息巧妙使用搜索引擎語(yǔ)法可以搜出暴露的管理后臺(tái)、配置文件、開(kāi)發(fā)文檔。還記得有個(gè)項(xiàng)目在源碼注釋里遺留了內(nèi)網(wǎng)IP和數(shù)據(jù)庫(kù)賬號(hào)這種信息稍加整合攻擊鏈就出來(lái)了。很多新人覺(jué)得信息收集只是“掃一掃”而已沒(méi)什么技術(shù)含量。但真正的差距恰恰體現(xiàn)在這里高手能通過(guò)一條子域名和一個(gè)后臺(tái)路徑推斷出目標(biāo)內(nèi)部的網(wǎng)絡(luò)架構(gòu)、代碼框架版本甚至開(kāi)發(fā)團(tuán)隊(duì)的編碼習(xí)慣。這些信息最終決定了后續(xù)測(cè)試的效率。這里必須強(qiáng)調(diào)一句老生常談但必須說(shuō)透的話信息收集只能在獲得授權(quán)的范圍內(nèi)進(jìn)行。你可以在自己的靶場(chǎng)、SRC平臺(tái)授權(quán)范圍內(nèi)或者在攻防演練中按規(guī)則去收集跑到別人網(wǎng)站上掃端口、翻目錄那是違法行為不是技術(shù)。4. Web漏洞必修課三大經(jīng)典漏洞的原理、利用與防御4.1 SQL注入數(shù)據(jù)庫(kù)在“翻譯”你傳進(jìn)去的話SQL注入是Web安全里最經(jīng)典、也最“歷史悠久”的漏洞類型本質(zhì)就是程序的數(shù)據(jù)庫(kù)查詢語(yǔ)句把用戶輸入的內(nèi)容當(dāng)成了代碼來(lái)執(zhí)行。舉個(gè)例子一個(gè)登錄業(yè)務(wù)在代碼里可能是這樣拼SQL的SELECT * FROM users WHERE usernameadmin AND password123456如果哪一步?jīng)]有做參數(shù)化處理攻擊者在用戶名處輸入admin --拼出來(lái)的SQL就變成了SELECT * FROM users WHERE usernameadmin -- AND password123456--在MySQL里是注釋符后面的密碼判斷直接被注釋掉了于是只要知道用戶名就能登錄。手工注入的基本邏輯是判斷閉合方式 - 判斷字段數(shù) - 判斷回顯位置 - 提取數(shù)據(jù)庫(kù)版本、庫(kù)名、表名、字段名、數(shù)據(jù)。這一套流程建議新手先在靶場(chǎng)里手工做十次以上再考慮上sqlmap工具。原因很簡(jiǎn)單工具能幫你跑出結(jié)果但幫不了你理解為什么。面試的時(shí)候面試官不會(huì)只看你會(huì)不會(huì)用sqlmap更重要的是問(wèn)你如何繞WAF、如何判斷注入點(diǎn)類型。防御方案現(xiàn)在成熟了核心就一條使用預(yù)編譯參數(shù)化查詢把SQL語(yǔ)句結(jié)構(gòu)和參數(shù)數(shù)據(jù)分開(kāi)傳遞。底層數(shù)據(jù)庫(kù)會(huì)先把SQL結(jié)構(gòu)編譯好再以“數(shù)據(jù)”的形式綁定參數(shù)無(wú)論傳進(jìn)去什么特殊字符都只是一串字符串永遠(yuǎn)不會(huì)被當(dāng)作SQL代碼執(zhí)行。另外對(duì)所有的用戶輸入做白名單校驗(yàn)也從源頭上縮小了風(fēng)險(xiǎn)。4.2 XSS跨站腳本網(wǎng)頁(yè)里的“惡意演員”XSS比SQL注入更容易被新人忽略因?yàn)樗奈:Σ幌瘛巴蠋?kù)”那么直接。但我一直跟學(xué)員說(shuō)XSS是現(xiàn)代Web應(yīng)用中出現(xiàn)頻率最高、變形最多、利用鏈最長(zhǎng)的一類漏洞。它的原理可以這樣理解一個(gè)網(wǎng)站有個(gè)留言板功能用戶能輸入評(píng)論網(wǎng)站把評(píng)論原樣展示到頁(yè)面里。如果你在評(píng)論里輸入的是scriptalert(xss)/script而服務(wù)器沒(méi)有做過(guò)濾、轉(zhuǎn)義那么這段代碼就會(huì)被瀏覽器當(dāng)成頁(yè)面腳本執(zhí)行。這就是最基礎(chǔ)的反射型和存儲(chǔ)型XSS。反射型惡意腳本通過(guò)URL參數(shù)傳入服務(wù)端輸出到頁(yè)面用戶點(diǎn)擊惡意鏈接才會(huì)觸發(fā)。存儲(chǔ)型惡意腳本被持久化保存到數(shù)據(jù)庫(kù)里任何一個(gè)用戶打開(kāi)頁(yè)面都會(huì)中招。評(píng)論區(qū)、個(gè)人簡(jiǎn)介、訂單留言這些位置是重災(zāi)區(qū)。DOM型服務(wù)端根本沒(méi)參與完全在前端DOM操作里把危險(xiǎn)數(shù)據(jù)拼進(jìn)了HTML。XSS真正的殺傷力在于配合其他業(yè)務(wù)使用。打個(gè)比方攻擊者可以構(gòu)造一個(gè)看起來(lái)完全正常的鏈接誘騙用戶點(diǎn)擊腳本竊取Session Cookie后回傳——于是攻擊者不需要知道密碼直接續(xù)上用戶的登錄態(tài)就能接管會(huì)話。更嚴(yán)重的場(chǎng)景是配合后臺(tái)管理功能比如在管理員瀏覽的頁(yè)面里注入腳本直接以管理員身份執(zhí)行敏感操作。防御的關(guān)鍵是“輸出編碼”數(shù)據(jù)在進(jìn)入HTML、JavaScript、CSS、URL等不同上下文之前必須用對(duì)應(yīng)的編碼函數(shù)把、、、、等特殊字符轉(zhuǎn)義。其次是Content-Security-PolicyCSP響應(yīng)頭它可以告訴瀏覽器“只信任白名單里的腳本源”就算頁(yè)面代碼被插入了惡意腳本瀏覽器也會(huì)拒絕執(zhí)行?,F(xiàn)代的框架如Vue、React在默認(rèn)情況下對(duì)插值做了轉(zhuǎn)義但v-html、dangerouslySetInnerHTML這類“不轉(zhuǎn)義接口”依然是XSS的高發(fā)點(diǎn)。4.3 文件上傳與命令執(zhí)行從“放文件”到“控制服務(wù)器”文件上傳功能幾乎每個(gè)網(wǎng)站都有頭像上傳、附件上傳、導(dǎo)入Excel……但很多開(kāi)發(fā)都沒(méi)想過(guò)這個(gè)口子一旦沒(méi)守好就等于直接給攻擊者遞了一把打開(kāi)服務(wù)器的鑰匙。最經(jīng)典的利用方式就是上傳WebShell。攻擊者構(gòu)造一個(gè)內(nèi)容為一句話木馬的文件?php eval($_POST[cmd]); ?如果服務(wù)端沒(méi)有校驗(yàn)文件內(nèi)容只校驗(yàn)了擴(kuò)展名把它傳上去然后通過(guò)Web訪問(wèn)這個(gè)文件——恭喜攻擊者已經(jīng)拿到你在服務(wù)器上執(zhí)行命令的“遙控器”了。所以文件上傳的防御要注意三層白名單校驗(yàn)只允許指定的擴(kuò)展名禁止一切不在名單里的類型。內(nèi)容校驗(yàn)用服務(wù)端檢查文件頭magic number、MIME類型和文件內(nèi)容不能只看前端傳的參數(shù)。存儲(chǔ)與執(zhí)行分離上傳文件放到獨(dú)立的靜態(tài)文件服務(wù)器或?qū)ο蟠鎯?chǔ)中不允許在Web應(yīng)用目錄下直接執(zhí)行腳本。命令執(zhí)行漏洞相對(duì)少一些但一旦存在就是致命的。這類漏洞的本質(zhì)是程序把用戶的輸入拼進(jìn)了系統(tǒng)命令里比如服務(wù)器端調(diào)用了system(ping . $ip)這樣的代碼。防御手段包括盡量避免直接調(diào)用系統(tǒng)命令、對(duì)命令參數(shù)做嚴(yán)格白名單、使用禁用的開(kāi)箱API等等。5. 抓包分析入門用Wireshark看清網(wǎng)絡(luò)里的“車輛行駛?cè)罩尽鼻懊嬷v的大部分是Web層的漏洞原理但如果你只停留在瀏覽器和HTTP層很多網(wǎng)絡(luò)層面的安全問(wèn)題你是看不見(jiàn)的。我建議所有初學(xué)者盡早養(yǎng)成抓包、看包的習(xí)慣。這不僅對(duì)滲透測(cè)試有用對(duì)排查日常網(wǎng)絡(luò)故障、理解協(xié)議細(xì)節(jié)同樣幫助巨大。Wireshark是目前最主流的網(wǎng)絡(luò)協(xié)議分析工具免費(fèi)開(kāi)源全平臺(tái)支持。它能做什么簡(jiǎn)單說(shuō)把網(wǎng)卡上流過(guò)的每一個(gè)數(shù)據(jù)包都“拍下來(lái)”然后按照協(xié)議棧一層層拆開(kāi)給你看。我第一次用它分析一個(gè)慢速網(wǎng)站問(wèn)題時(shí)通過(guò)看TCP往返時(shí)延和重傳率很快就找到了瓶頸那種“原來(lái)網(wǎng)線里的數(shù)據(jù)是這么走的”的感覺(jué)比背十遍OSI模型都管用。很多新手從網(wǎng)上找一些練習(xí)數(shù)據(jù)包來(lái)練手最常見(jiàn)的一個(gè)題目就是使用wireshark查看并分析靶機(jī)桌面下的capture.pcapng數(shù)據(jù)包文件找到黑客的ip地址。這種題怎么解呢我給你列一套可以復(fù)用的分析思路打開(kāi)pcapng文件后先別急著亂翻??唇y(tǒng)計(jì)菜單里的“協(xié)議分級(jí)”了解這個(gè)包里主要是什么流量——是HTTP多還是TCP多有沒(méi)有可疑的IRC、Telnet等明文協(xié)議的流量。定位可疑IP。用統(tǒng)計(jì) - 端點(diǎn)查看流量最集中的IP地址。攻擊者一般不會(huì)是流量最干凈的IP。如果一個(gè)IP既訪問(wèn)了你的Web服務(wù)又嘗試連你的數(shù)據(jù)庫(kù)端口那就有嫌疑。追蹤流Follow TCP Stream。選中可疑的HTTP請(qǐng)求右鍵跟蹤TCP流可以直接看到請(qǐng)求和響應(yīng)的完整內(nèi)容。在這個(gè)視圖里賬號(hào)密碼、攻擊payload往往就擺在明面上。看時(shí)間線。攻擊不一定包在單個(gè)包里很可能是先掃描、再利用、再回連的節(jié)奏。通過(guò)時(shí)間列看包與包之間的間隔可以判斷哪些行為是“主動(dòng)攻擊”哪些是正常訪問(wèn)。這里給你一個(gè)實(shí)戰(zhàn)小例子。假設(shè)pcapng里有大量來(lái)自203.0.113.5的攻擊流量表現(xiàn)為短時(shí)間內(nèi)向目標(biāo)IP的多個(gè)端口發(fā)送TCP SYN包緊接著又有幾個(gè)帶有/admin/login.php?id1特征的HTTP請(qǐng)求。通過(guò)Wireshark篩選器輸入ip.addr 203.0.113.5就會(huì)把該IP相關(guān)的所有包過(guò)濾出來(lái)。再配合HTTP請(qǐng)求篩選http.request就能看到攻擊路徑是什么樣的。這種分析能力在安全運(yùn)營(yíng)中心的日常工作中用得非常多。抓包分析的核心技能是會(huì)“過(guò)濾”。Wireshark的顯示過(guò)濾器語(yǔ)法一定要練熟比如ip.src 192.168.1.1只看源地址tcp.port 443只看443端口的流量http.request.method POST只看POST請(qǐng)求tls.handshake.type 1只看TLS握手包其實(shí)不用全背你只需要掌握幾個(gè)常用的然后善用右下角的“表達(dá)式”按鈕它會(huì)給你列出一整棵協(xié)議字段樹照著點(diǎn)就行。新手最容易犯的錯(cuò)誤是一打開(kāi)抓包就抓全網(wǎng)卡抓到幾百M(fèi)B文件卡到電腦死機(jī)。正確做法是先確定你要看什么流量再設(shè)置對(duì)應(yīng)的抓包過(guò)濾器減少無(wú)關(guān)數(shù)據(jù)干擾。6. 走向?qū)崙?zhàn)SRC平臺(tái)與CTF賽事才是“合法打怪”的副本從實(shí)力角度說(shuō)靶場(chǎng)只能幫你建立手感進(jìn)入商業(yè)環(huán)境或者參加真實(shí)項(xiàng)目才是檢驗(yàn)水平的開(kāi)始。但對(duì)新手來(lái)說(shuō)最穩(wěn)妥、最合法的“出師之路”是SRC平臺(tái)和CTF比賽。6.1 SRC把挖洞變成正經(jīng)事SRC全稱是Security Response Center也就是廠商的安全應(yīng)急響應(yīng)中心。國(guó)內(nèi)主流互聯(lián)網(wǎng)公司基本都有自己的SRC平臺(tái)也有行業(yè)聚合平臺(tái)把幾十上百家企業(yè)的眾測(cè)項(xiàng)目匯總在一起。在這些平臺(tái)上白帽子可以在廠商“授權(quán)”的資產(chǎn)范圍內(nèi)尋找安全漏洞提交后獲得積分或現(xiàn)金獎(jiǎng)勵(lì)。新手第一次上SRC我建議按三條原則來(lái)從小目標(biāo)開(kāi)始。別一上來(lái)就去碰大廠核心業(yè)務(wù)那些邊緣系統(tǒng)反而容易被遺漏但優(yōu)先級(jí)也低。先找那些“測(cè)試賬號(hào)開(kāi)放、企業(yè)自建應(yīng)用”的項(xiàng)目練手漏洞數(shù)量多、審核快。先在測(cè)試站上驗(yàn)證再提交。廠商給的測(cè)試環(huán)境怎么折騰都行但千萬(wàn)不要拿測(cè)試Payload去打線上數(shù)據(jù)。這是行業(yè)底線。報(bào)告寫清楚。很多新手挖到漏洞但報(bào)告寫得一塌糊涂沒(méi)有截圖、復(fù)現(xiàn)步驟模糊、影響范圍說(shuō)不清。一份合格的漏洞報(bào)告至少應(yīng)該包含漏洞URL、漏洞類型、復(fù)現(xiàn)步驟最好帶請(qǐng)求包和響應(yīng)包、影響分析、修復(fù)建議。記住審核人員一天看幾百份報(bào)告你的報(bào)告越清晰評(píng)級(jí)往往越高?,F(xiàn)在這個(gè)行業(yè)已經(jīng)很成熟了SRC渠道可以讓你在沒(méi)入職之前就建立自己的漏洞挖掘記錄。很多公司招聘安全工程師非??粗豐RC排名和提交記錄這比簡(jiǎn)歷上自吹自擂有說(shuō)服力得多。6.2 CTF打比賽是成長(zhǎng)的“加速器”CTFCapture The Flag是網(wǎng)絡(luò)安全競(jìng)賽的主流形式解題方向分為Web、Pwn二進(jìn)制漏洞利用、Reverse逆向工程、Crypto密碼學(xué)、Misc雜項(xiàng)等。對(duì)入門者來(lái)說(shuō)Web方向的題目最友好也是我最推薦新手先入坑的方向。國(guó)內(nèi)比較權(quán)威、老牌的CTF賽事包括XCTF國(guó)際聯(lián)賽、強(qiáng)網(wǎng)杯、護(hù)網(wǎng)杯、網(wǎng)鼎杯等。很多廠商和機(jī)構(gòu)也會(huì)定期辦一些新人友好的線上賽。打比賽最大的價(jià)值不是名次而是它逼著你在有限時(shí)間內(nèi)快速學(xué)習(xí)一個(gè)新的小知識(shí)點(diǎn)——這種“被迫式快速學(xué)習(xí)”的節(jié)奏一旦適應(yīng)后面自學(xué)任何新工具都會(huì)快很多。我的個(gè)人建議是入行前半年每周參加一場(chǎng)線上CTF不會(huì)的題目賽后看Writeup看懂后再自己獨(dú)立做一遍。半年下來(lái)你對(duì)Web漏洞、編碼繞過(guò)、密碼學(xué)的理解會(huì)比你看十個(gè)月教程深得多。由于Web賽題經(jīng)常結(jié)合真實(shí)的CMS框架、開(kāi)源組件所以多留意當(dāng)前的CVE公共漏洞披露對(duì)打比賽和挖SRC都有幫助。7. 就業(yè)關(guān)口考證、面試與崗位的真實(shí)畫像不少人學(xué)網(wǎng)絡(luò)安全是為了找工作那這部分你得拿小本本記好。7.1 常見(jiàn)的就業(yè)方向滲透測(cè)試工程師授權(quán)范圍內(nèi)對(duì)系統(tǒng)發(fā)起模擬攻擊產(chǎn)出測(cè)試報(bào)告。出差多、實(shí)戰(zhàn)多、成長(zhǎng)快。安全運(yùn)維/安全運(yùn)營(yíng)工程師負(fù)責(zé)防火墻、WAF、IDS/IPS維護(hù)看日志、處理告警、安全加固。崗位需求量大適合入門。安全研發(fā)工程師做安全產(chǎn)品掃描器、WAF、SIEM的后端開(kāi)發(fā)要求代碼能力強(qiáng)。等保測(cè)評(píng)師依據(jù)國(guó)家等級(jí)保護(hù)標(biāo)準(zhǔn)對(duì)系統(tǒng)進(jìn)行測(cè)評(píng)偏合規(guī)方向不需要很強(qiáng)的攻防能力。應(yīng)急響應(yīng)/安全服務(wù)工程師甲方被攻破之后入場(chǎng)做排查、取證、清除后門、恢復(fù)系統(tǒng)。7.2 證書到底有沒(méi)有用這個(gè)問(wèn)題幾乎每個(gè)新手都問(wèn)過(guò)。我的看法是證書是敲門磚不是護(hù)身符。在校學(xué)生考NISP國(guó)家信息安全水平考試性價(jià)比很高從業(yè)者想提升含金量可以看CISP注冊(cè)信息安全專業(yè)人員、CISSP注冊(cè)信息系統(tǒng)安全專家。但真正面試時(shí)面試官最看重的還是你的實(shí)戰(zhàn)能力和思路。你可以在簡(jiǎn)歷里寫“曾在XSRC平臺(tái)提交過(guò)X個(gè)高危漏洞”這比一張證書有用得多。7.3 網(wǎng)絡(luò)安全面試題會(huì)問(wèn)什么結(jié)合我自己面試和被面試的經(jīng)歷新人的技術(shù)面大概集中在以下三類基礎(chǔ)概念類三次握手和四次揮手的過(guò)程是什么HTTP和HTTPS的區(qū)別對(duì)稱加密和非對(duì)稱加密的區(qū)別漏洞原理類SQL注入如何判斷注入點(diǎn)存儲(chǔ)型XSS和反射型XSS的區(qū)別文件上傳繞過(guò)都有哪些思路Redis未授權(quán)訪問(wèn)怎么利用和修復(fù)場(chǎng)景分析類如果線上服務(wù)器CPU飆升你會(huì)怎么排查收到一個(gè)釣魚郵件怎么分析日志里出現(xiàn)大量401錯(cuò)誤怎么辦這些題都不需要你背答案只要你前面階段是認(rèn)真練過(guò)來(lái)的完全可以答得比較順。如果發(fā)現(xiàn)自己答不上來(lái)趁現(xiàn)在把這些知識(shí)的“基本盤”補(bǔ)扎實(shí)面試就沒(méi)那么可怕了。8. 新手避坑清單這些話沒(méi)人提醒你可能要摔幾次跤最后這部分是我最想對(duì)新手說(shuō)的一些“體己話”不一定都是技術(shù)但每一條都是我或者身邊朋友真實(shí)踩過(guò)的坑。1. 千萬(wàn)不要下載來(lái)路不明的“黑客工具包”。熱詞里有些像“黑客神器網(wǎng)站大全”“黑客開(kāi)戶軟件下載”之類的東西十有八九是坑。真正的開(kāi)源安全工具基本都是公開(kāi)的、體積不大、有官方文檔的。那種打包幾百個(gè)工具、還要你關(guān)閉殺毒軟件的東西請(qǐng)直接刪掉。我做過(guò)測(cè)試很多“工具包”里有后門木馬你一運(yùn)行就等于把電腦的控制權(quán)送給了別人。安全圈的人竟然被“黑客工具”釣魚說(shuō)出去都丟人。2. 別搞“無(wú)授權(quán)測(cè)試”。哪怕你學(xué)有所成也別拿同學(xué)、同事、鄰居的網(wǎng)站來(lái)練手更不能拿政府、學(xué)校、企業(yè)的系統(tǒng)來(lái)試。我們這行最講究的就是“邊界感”——授權(quán)是底線。技術(shù)能力越強(qiáng)越要懂得邊界在哪里。3. 學(xué)習(xí)不要追求速成?!皬娜腴T到精通”這種標(biāo)題本身就是個(gè)悖論。安全是攻防對(duì)抗的行業(yè)攻擊技術(shù)在變、防御技術(shù)在變、業(yè)務(wù)也在變沒(méi)有人能真正“精通”。我?guī)Я诉@么多年新人發(fā)現(xiàn)成長(zhǎng)最快的往往不是天賦最高的而是最能沉下心一個(gè)漏洞一個(gè)漏洞啃的那種人。今天搞會(huì)一個(gè)XSS的繞過(guò)姿勢(shì)明天搞會(huì)一個(gè)內(nèi)網(wǎng)穿透的思路積累半年之后你就真的站在門檻上了。4. 多寫筆記多輸出。我一直鼓勵(lì)新人把自己學(xué)過(guò)的漏洞原理、踩過(guò)的坑寫成文章。你寫出來(lái)的過(guò)程就是你把這些知識(shí)重新組織、內(nèi)化的過(guò)程。我自己的博客就是從一篇很幼稚的SQL注入筆記開(kāi)始的現(xiàn)在回看雖然漏洞百出但正是那時(shí)候養(yǎng)成的總結(jié)習(xí)慣讓我能走得更遠(yuǎn)。5. 保持耐心以戰(zhàn)養(yǎng)戰(zhàn)。學(xué)習(xí)到一定程度一定要找實(shí)戰(zhàn)機(jī)會(huì)。SRC平臺(tái)、CTF比賽、開(kāi)源項(xiàng)目找issue復(fù)現(xiàn)都是好的方式。如果你身邊找不到安全的圈子就多混一些技術(shù)社區(qū)參加線上線下的分享認(rèn)識(shí)同路的人。一個(gè)人閉門造車過(guò)不了多久就會(huì)因?yàn)榭床坏椒答伓艞墶W鰝€(gè)簡(jiǎn)單的總結(jié)吧。網(wǎng)絡(luò)安全這個(gè)領(lǐng)域入門不難難的是方向感和自律。把基礎(chǔ)打牢、在靶場(chǎng)里磨透每一個(gè)經(jīng)典漏洞、多看報(bào)文、參加比賽、寫報(bào)告這條路走下來(lái)你已經(jīng)超越絕大多數(shù)人了。希望這一篇將近七千字的干貨筆記能幫你少走一些我當(dāng)年走過(guò)的彎路。我們后會(huì)有期。