零基礎如何學習Web安全滲透?推薦這份史上最詳細的自學路線圖!


有同學詢問陳老師:


自己對 Web安全滲透測試非常有興趣,但是零基礎不知道怎麼入門,然後直接去看了市面上的一些網絡安全書籍,例如道哥的《白帽子講Web安全》,也看了一些烏雲案例,但感覺自己沒啥收穫?


這個情況其實並不是書籍或其他學習資源出了問題,而是你本身的學習路線與知識體系出了問題,為什麼呢?


正所謂「 Web 安全滲透」,你剛入門就把重心放在後面的「安全滲透」,而不是前面的「Web」,脫離 Web 技術搞滲透,這就屬於典型的本末倒置。當然,這也是當前 90% 以上 Web安全/滲透測試 新人們剛入門時遇到的情況。


這裡順便做一次普及:Web 技術到底有哪些?


這裡我們先來舉個簡單的例子:

零基礎如何學習Web安全滲透?推薦這份史上最詳細的自學路線圖!

上圖是一個普通的不能再普通的上網模型,涉及到三個部分,第一部分就是左邊的”你“,第二部分就是連接通信雙方的互聯網,第三部分就是右邊的網站(以拼客學院為例)。


當“你”訪問拼客學院時,從瀏覽器輸入網址到最終看到網頁,這個過程到底發生了什麼?

零基礎如何學習Web安全滲透?推薦這份史上最詳細的自學路線圖!

  • 第一,瀏覽器將域名解析為 IP 地址(這裡涉及到 DNS 域名解析技術)
  • 第二,瀏覽器根據源目 IP 地址封裝 HTTP 請求包發送給網站拼客學院(這裡涉及到 HTTP/HTTPs 通信協議)
  • 第三,網站拼客學院收到 HTTP 請求並解析,根據請求調用數據庫並返回資源(這裡涉及到 Web 後端開發 / 數據庫 / 容器 / 框架/ 操作系統等技術)
  • 第四,網站資源包括網頁、文檔、音頻、視頻等,封裝為 HTTP 響應包傳輸給瀏覽器(這裡仍然涉及到 HTTP/HTTPs 通信協議)
  • 第五,瀏覽器收到拼客學院的 HTTP 響應包,調用前端技術
    進行解析並顯示給用戶(這裡涉及瀏覽器與 Web 前端開發技術)


千萬千萬不要小看上面的每個步驟,看上去感覺挺簡單,但其實每個步驟的背後又可以拆分為 N 多個步驟。拿第三個步驟為例,當網站收到 HTTP 請求後,到底是如何解析這個請求,並且又是如何調用數據庫資源的?這裡首先會涉及到後端開發技術中的 MVC/MTV 架構,如圖:

零基礎如何學習Web安全滲透?推薦這份史上最詳細的自學路線圖!


除此之外,在網站部署的時候還會涉及到 Web 容器、網關接口、靜態文件、負載均衡等模塊的處理,如圖:

零基礎如何學習Web安全滲透?推薦這份史上最詳細的自學路線圖!


上面這一次簡單的不能最簡單的 Web 訪問過程,其實就勾勒出一個複雜的 Web 技術生態。我們必須認識到:


  • Web 技術不僅僅是 Web前端開發技術(也指"網頁開發"技術)
  • Web 技術不僅僅是 Web 後端開發技術(例如 “PHP網站開發” “Java網站開發” )
  • Web 技術不僅僅是 互聯網通信技術(例如 DNS、HTTP、HTTPS 等)……


我們可以用這張「 Web 技術架構圖」將所有涉及到 Web 技術串聯起來 =>

零基礎如何學習Web安全滲透?推薦這份史上最詳細的自學路線圖!


也就是說,要真正看懂道哥這本經典的《白帽子講 Web 安全》或者讀懂烏雲上的滲透測試案例,首先,你得掂量下,自己是否具備這些前置知識:


  • 是否能夠從零開始搭建起一個網站?(網站架構)
  • 是否瞭解過 HTTP 協議原理?例如用抓包軟件分析過 HTTP請求和響應包有什麼內容?(Web通信協議)
  • 是否能看懂網頁源碼,或者用 HTML / CSS / JavaScript 做過前端頁面?(Web前端)
  • 是否清楚什麼是 MVC/MTV 架構,或者用 Python / PHP / Java 做過後端架構?(Web後端 )
  • 是否瞭解過常見的 Web容器/中間件,或者用過 Apache / Nginx / Tomcat?(Web容器)
  • 是否掌握任一常見的數據庫技術,包括但不限於 MySQL / SQLsever / Oracle?(數據庫)……


如果你真的掌握了以上這些 Web 技術,搞懂了網站前後端原理,甚至在代碼層面能親手開發出來。那麼,你再回去看相關安全書籍或案例就不會「沒啥收穫」,相反地,你一定能獲得這樣的學習體驗:

零基礎如何學習Web安全滲透?推薦這份史上最詳細的自學路線圖!

  • 由於有 Web 前端語言基礎,那麼學 XSS 和 CSRF 漏洞會很快(客戶端安全)
  • 由於有 Web 後端語言基礎,那麼會很快搞定 Webshell木馬、文件上傳、代碼執行等漏洞(服務端安全)
  • 由於有 數據庫 SQL 語言基礎,那麼你學 SQL 注入漏洞或者搞手工注入會感到輕而易舉(數據庫安全)……


總而言之,我們要真正學懂學通「Web 安全滲透」,一定需要一個科學合理、循序漸進、第一原理驅動的學習路線,千萬不要「瞎折騰」,不要急著學「滲透」,更不要一上來就用「工具」。因為 Web 安全滲透技術,首先是建立在 Web 技術之上的,繞開這些技術談安全談滲透,那便是 "空中樓閣"。


因此,如果你真正熱愛安全技術,目標是一名合格的白帽子黑客,甚至希望未來從事網絡空間安全相關職位,那麼,前期潛心花費幾個月的時間,把這些未來幹活必定會用到的技能耐心打磨好,是不是穩賺不賠的?畢竟,大學讀 4 年也未必能讓你找到工作。


--- 以下才是正文---


那麼,Web 安全滲透的學習路線應該是怎樣的?


考慮到題主是一個新手,因此,接下來我會帶領你一起來制定這條路線:

《 Web 安全工程師/滲透測試工程師學習路線圖》

零基礎如何學習Web安全滲透?推薦這份史上最詳細的自學路線圖!

所謂「授之以魚不如授之以漁」,本學習路線圖中我會告訴你每個階段需要學什麼、為什麼要學這些、需要花費多少時間、學完之後要達到的目標。


更重要的是,本學習路線圖提到的所有技術內容和推薦資源,都可以通過搜索引擎免費找到,包括書籍、文章、教程、工具等等。因此,只要足夠耐心,即便 0 基礎,按照這個路線圖,堅持學習 100 天,你也能夠通過自學的方式掌握這些技術。

注:100 天是我個人推薦的學習週期,結合了我們拼客學院多年來的安全教育經驗( 始於2013年 ),從企業僱主和學員們的各個數據反饋綜合得出。因此,這個週期未必適合每一個人,你可以根據自身情況來動態調整。


接下來,我們對這張路線圖進行階段拆解,分為學習導論、技能清單、工具軟件、學習資源、學習週期

等方面詳細展開 =>


第 1 階段 Web 技術入門


1.0 學習導論

此階段,我們的學習目標是瞭解網絡安全行業的法律法規 / 學習方法 / 求職目標,搭建屬於自己的博客 / 論壇 / 網站(成為一名站長)、掌握 Web 技術架構、搞懂瀏覽器和網站之間的通信原理。


1.1 技能清單

Web 安全導論

  • 法律法規
  • 行業趨勢
  • 安全標準
  • 學習指南

Web 網站實戰

  • Web 建站指南(WordPress在線建站)
  • XMAPP 原理與實踐(Web集成環境解讀)
  • XAMPP 安裝 WordPress
  • Joomla 介紹與安裝
  • Discuz 介紹與安裝
  • Dedecms 介紹與安裝

HTTP原理與實踐

  • HTTP 協議概述
  • HTTP 請求響應
  • HTTP 請求方法
  • HTTP 響應方法
  • HTTP 消息報文之請求報文
  • HTTP 消息報文之響應報文
  • HTTP 消息報文之通用報文
  • HTTP 消息報文之實體報文


1.2 工具軟件

  • 網站運行環境Xampp / PHPstudy / WAMP / MAMP(任選一個)BitnamiPhpMyAdmin
  • CMS 程序包WordPressJoomlaDiscuzDedecms
  • 抓包調試PostmanNpcapWireshark


1.3 學習資源

  • 推薦網站W3schoolRunoob
  • 推薦書籍《 W3school 網站建設教程》《圖解 HTTP 》


1.4 學習週期

  • 推薦 1 周


第 2 階段 Web 前端開發


2.0 學習導論

此階段,我們的學習目標是掌握 Web 前端開發技術,學習 HTML、CSS、JavaScript 編程語言,能獨立製作 Web商業級頁面。


2.1 技能清單

  • HTML 編程原理與實踐WebStorm使用HTML 入門HTML 標題HTML 頭部HTML 段落HTML 文本HTML 鏈接HTML 列表HTML 表格HTML 佈局HTML 項目
  • CSS 編程原理與實踐CSS 入門CSS 選擇器CSS 背景CSS 文本CSS 字體CSS 鏈接CSS 盒模型CSS 定位CSS 浮動CSS 項目
  • JavaScript 編程原理與實踐JavaScript簡介JavaScript 基礎JavaScript 變量JavaScript 數字JavaScript 字符串JavaScript 數組JavaScript 詞典JavaScript 流程控制JavaScript 流程控制JavaScript 函數JavaScript DOM基礎JavaScript DOM事件JavaScript BOM事件JavaScript 項目


2.2 工具軟件

  • Webstorm
  • Sublime Text


2.3 學習資源

  • 推薦網站W3schoolRunoob
  • 推薦書籍《 W3school 前端教程合集》《 HTML5 與 CSS3 基礎教程》(圖靈出版)《 JavaScript 基礎教程》(圖靈出版)


2.4 學習週期

  • 推薦 2 ~ 3 周


第 3 階段 Web 後端開發


3.0 學習導論

此階段,我們的學習目標是掌握 Web 後端開發,學習 Python 編程與 Django Web 開發框架,掌握 MySQL 數據庫原理與操作。從零開始獨立開發一個 Web 網站,並基於 LNMP 架構在 CentOS 服務器上進行部署。

這裡要特別強調下,後端技術涉及的編程語言、Web框架、數據庫、中間件、操作系統等技術眾多,作為新手,可以遵循一個原則,即「深入某個技術棧,橫向擴展其他」。

例如,在這個路線圖裡面,我們選擇 Python/Django 作為後端學習的技術棧,因為相比 Java 或 PHP,Python 對於新手而言更加友好,代碼簡潔且語法清晰。不僅如此,由於眾多安全工具和測試代碼基於 Python 開發,其也被稱為黑客或網絡安全領域的第一語言

當我們完成了 Python / Django 的學習之後,後續也可以再橫向拓展到 PHP/Thinkphp 或 Java/Spring 等後端技術棧,這樣才能更好的勝任 Web 安全測試工作。


3.1 技能清單

Python 編程原理與實踐

  • Python 導論入門
  • Python 環境安裝
  • Python 對象類型
  • Python 流程控制
  • Python 函數模塊
  • Python 面向對象
  • Python 輸入輸出
  • Python 異常處理

Django Web 項目開發實戰

  • Django 框架入門
  • Django 環境安裝
  • Django 項目搭建
  • Django ORM
  • Django Models
  • Django Views
  • Django Template
  • Django Blog 項目
  • 網站部署上線

.2 工具軟件

  • PyCharm
  • Navicat
  • MySQL

3.3 學習資源

  • 推薦網站Python官網Python手冊(中文版)Django官網Django項目W3schoolRunoob
  • 推薦書籍《 Python 核心編程 》《 Python 學習手冊 》《 笨方法學 Python 》《 輕量級 Django 》《 Django Book 》

3.4 學習週期

  • 推薦 3 ~ 4 周


第 4 階段 Web 安全滲透


4.0 學習導論

此階段,我們的學習目標是:

  • 熟練 Kail Linux 滲透測試原理與實踐,包括信息蒐集、漏洞掃描、漏洞利用、後門維持等。
  • 熟練 Web 安全攻防實驗室搭建與靶機使用,包括 OWASP BWA、DVWA、Mutillidae II、PentesterLab 等。
  • 熟練OWASP TOP10 等 Web 漏洞原理與利用,包括 SQL 注入、文件上傳、文件包含、Webshell木馬編寫、命令執行、XSS跨站腳本攻擊、CSRF跨站偽造請求等。
  • 熟練編程開發與滲透測試等超 40 種常用工具使用,包括但不限於 BurpSuite、SQLmap、Wireshark、Metasploit、Nmap、Nessus、OpenVas、AppScan、AWVS、ZAP、Havij、Postman、Pangolin、Cknife、Weevely、Jexboss、Tamper、Xampp、edjpgcom、Google Devtools、PyCharm、WebStorm、Navicat、SET、Meterpreter、Shodan、Dirbuster、BeEF、WPscan、Joomscan、httpprint、Whatweb、Layer子域名、御劍後臺、中國菜刀等。
  • 熟悉CTF靶機滲透測試實戰,通過CTF4、CTF6、CTF7等攻防實踐,真正掌握黑盒測試、攻擊鏈、紅隊等一系列方法。
  • 熟悉Windows與Linux常見漏洞復現實踐,包括CVE-2017-7494-SambyCry遠程代碼執行、CVE-2017-16995-Ubuntu16.04本地提權、MS17-010-永恆之藍-Windows提權等。


4.1 技能清單

Web安全滲透之實驗室搭建

  • Kali Linux
  • OWASP BWA
  • PentesterLab
  • Windows
  • ……

Web安全滲透之信息蒐集

  • 搜索引擎Google Hacking
  • 搜索引擎 Shodan Hacking
  • 搜索引擎Zoomeye Hacking
  • 目標掃描 Nmap 簡介-命令行操作
  • 目標掃描 Nmap 圖形化操作(Zenmap)
  • 目標掃描 Nmap 圖形化操作(Zenmap)
  • 目標掃描 OpenVAS
  • 域名遍歷 Dirbuster
  • 域名遍歷御劍後臺-Layer子域名
  • 指紋識別 Whatweb
  • 指紋識別 httprint
  • ……

Web安全滲透之漏洞掃描

  • Web漏掃原理與工具介紹
  • BurpSuite入門與安裝
  • BurpSuite代理功能
  • BurpSuite目標功能
  • BurpSuite爬蟲功能
  • BurpSuite掃描功能
  • BurpSuite入侵功能
  • BurpSuite輔助功能
  • BurpSuite+CO2實現SQL注入攻擊
  • AWVS入門與安裝
  • AWVS Web Scanner掃描功能
  • AWVS 站點爬取-目標查找-子域名查找
  • AWVS SQL盲注-HTTP編輯-嗅探-模糊測試
  • AWVS HTTP表單破解-任務計劃-Web服務掃描
  • Appscan入門與安裝
  • Appscan掃描執行-漏洞說明-修復任務
  • Appscan保存掃描-導出報告-掃描配置
  • Appscan手工探索-手工測試-調度程序
  • Appscan PowerTools - 表單破解
  • OWASP ZAP入門與安裝
  • OWASP ZAP主動掃描
  • OWASP ZAP掃描報告-攔截代理-插件使用
  • OWASP ZAP模糊測試-編碼解碼
  • WPscan-Joomscan
  • ……

Web安全滲透之SQL注入與防禦

  • SQL注入漏洞原理-影響-分類
  • 數據庫原理-SQL語句講解-CRUD操作
  • 數據庫原理-數據表建立-注入流程
  • 手工注入-錯誤-布爾-Union注入
  • 手工注入-Union注入-時間盲注
  • 自動化注入-SQLmap入門與使用
  • 自動化注入-SQLmap GET注入詳解
  • 自動化注入-SQLmap POST注入-帶參數cookie注入
  • 自動化注入-SQLmap混淆-代理-高級注入
  • 自動化注入-SQLmap數據獲取-提取操作
  • 自動化注入-SQLmap實戰案例
  • 自動化注入-Havij使用詳解
  • 自動化注入-Havij實戰案例
  • 自動化注入-Pangolin使用詳解
  • SQL注入安全防禦思路
  • ……

Web安全滲透之文件上傳攻擊與防禦

  • 文件上傳漏洞原理
  • 低安全級別漏洞利用-上傳Webshell-繞過大小限制
  • 中安全級別漏洞利用-繞過文件類型限制實現任意文件上傳
  • 高安全級別漏洞利用-上傳一句話圖片木馬
  • Webshell原理-一句話木馬代碼解讀
  • Webshell 實戰-中國菜刀(China Chopper)
  • Webshell 實戰-C刀(Cknife)
  • Webshell實戰-一句話圖片木馬原理與製作(edjpgcom-cmd製作)
  • Webshell 實戰-XISE寄生蟲
  • Webshell 實戰-Weevely
  • 文件上傳漏洞安全防禦思路
  • ……

Web安全滲透之文件包含攻擊與防禦

  • 文件包含漏洞原理
  • 本地文件包含(LFI)
  • 遠程文件包含(LFI)
  • 本地文件包含結合文件上傳webshell
  • 遠程文件包含結合webshell
  • 中高安全級別繞過分析
  • 文件包含安全防禦思路
  • ……

Web安全滲透之命令執行攻擊與防禦

  • 命令執行漏洞原理-低安全級別漏洞利用
  • 命令執行漏洞原理-中高安全級別漏洞利用
  • 命令執行漏洞原理-Apache Struts2遠程命令執行實戰案例
  • 命令執行防禦思路
  • ……

Web安全滲透之 XSS 攻擊與防禦

  • XSS跨站腳本攻擊原理-分類-危害
  • 反射型 XSS-低安全級別-彈框-重定向-cookie獲取及利用(tamper data)
  • 反射型 XSS-中安全級別-大小寫-混淆寫法繞過
  • 存儲型 XSS-低安全級別-彈框告警-cookie獲取
  • 存儲型 XSS-中高級別分析及cookie獲取
  • 自動化攻擊- BeEF 入門簡介
  • 自動化攻擊- BeEF 基礎使用(初始啟動-腳本解讀-服務管理)
  • 自動化攻擊- BeEF 信息收集(瀏覽器重定向-鏈接修改-彈框-主機-網絡)
  • 自動化攻擊- BeEF 持久化控制-與Metasploit結合實現滲透測試
  • 自動化攻擊- BeEF 社會工程學攻擊(點擊劫持-谷歌Facebook網頁釣魚-虛假更新)
  • XSS 跨站腳本攻擊-安全防禦思路
  • ……

Web安全滲透之 CSRF 攻擊與防禦

  • CSRF跨站請求偽造原理-會話機制(Cookie和Session)
  • CSRF跨站請求偽造-BeEF-XSS實現CSRF攻擊(GET方法實現管理員密碼修改)
  • CSRF跨站請求偽造-BeEF-Burp實現CSRF攻擊(POST方法實現信息提交)
  • CSRF跨站請求偽造-安全防禦思路(二次認證-Token認證-Refer頭部檢測)
  • ……

高級滲透測試系列

  • 網絡服務滲透之 Windows 常用服務
  • 網絡服務滲透攻擊 之 Linux 常用服務
  • 客戶端滲透之 Adobe PDF 滲透
  • 客戶端滲透之 Office Word滲透
  • 社會工程學之偽裝木馬
  • 社會工程學之網站釣魚
  • 自動化滲透 - 後滲透
  • ……

CTF 靶機滲透實戰系列

  • 從零開始認識 CTF 奪旗賽
  • CTF 賽事題目解析
  • 快速拿下 WordPress 靶機
  • 一步一步教你拿下 CTF 4 靶機
  • 一步一步教你拿下 CTF 6 靶機
  • 一步一步教你拿下 CTF 7 靶機
  • ……


4.2 工具軟件

  • 信息蒐集搜索引擎(Google/Shadan hacking)目標掃描(Nmap、OpenVAS)指紋識別(whatweb、Appprint、御劍指紋識別)域名/目錄/後臺/暴破(DirBuster、御劍、Layer子域名挖掘機)
  • 漏洞掃描BurpSuiteAWVSAppscanZAPWPscanJoomscan
  • SQL注入漏洞SQLmapPangolinHavijDiscuz注入漏洞利用exp
  • XSS/CSRF漏洞BeEF
  • 文件上傳中國菜刀Cknifeedjpgcom一句話圖片木馬XISE WBMSWeevely
  • 命令執行Struts2漏洞利用exp……


4.3 學習資源

  • 推薦書籍
  • 《 Kali Linux 滲透測試學習清單 》
  • 《 白帽子講 Web 安全 》
  • 《 Web 安全深度剖析 》
  • 《 Metaspolit 滲透測試魔鬼訓練營 》
  • 《 Web 前端安全揭秘 》
  • 《 黑客攻防技術寶典 Web 實戰篇 》
  • 《 SQL 注入攻擊與防禦 》
  • 《 XSS 跨站腳本攻擊剖析與防禦 》
  • ……


4.4 學習週期

  • 推薦 5 ~ 6 周


本文正式結束啦~~~


分享到:


相關文章: