1.零基础如何学习Web安全渗透测试?[通俗易懂](自由的百科全书)
零基礎如何學習Web安全滲透測試?這可能是史上最詳細的自學路線圖!
轉載于 拼客學院陳鑫杰拼客院長陳鑫杰(若有侵權,請聯系郵件751493745@qq.com,我會及時刪除)
(轉載鏈接:https://mp.weixin.qq.com/s/SlG_tWSEXapMeOezfBrnww)
好了開始了,真的是受益匪淺?。。。。?!
=============================================
有同學詢問陳老師:
自己對 Web安全滲透測試非常有興趣,但是零基礎不知道怎么入門,然后直接去看了市面上的一些網絡安全書籍,例如道哥的《白帽子講Web安全》,也看了一些烏云案例,但感覺自己沒啥收獲?
這個情況其實并不是書籍或其他學習資源出了問題,而是你本身的學習路線與知識體系出了問題,為什么呢?
正所謂「 Web 安全滲透」,你剛入門就把重心放在后面的「安全滲透」,而不是前面的「Web」,脫離 Web 技術搞滲透,這就屬于典型的本末倒置。當然,這也是當前 90% 以上 Web安全/滲透測試 新人們剛入門時遇到的情況。(反思!?。。?/p>
這里順便做一次普及: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 后端開發技術(例如 “PHP網站開發” “Java網站開發” )
-
Web 技術不僅僅是 互聯網通信技術(例如 DNS、HTTP、HTTPS 等)
……
我們可以用這張「 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 前端語言基礎,那么學 XSS 和 CSRF 漏洞會很快(客戶端安全)
-
由于有 Web 后端語言基礎,那么會很快搞定 Webshell木馬、文件上傳、代碼執行等漏洞(服務端安全)
-
由于有 數據庫 SQL 語言基礎,那么你學 SQL 注入漏洞或者搞手工注入會感到輕而易舉(數據庫安全)
……
總而言之,我們要真正學懂學通「Web 安全滲透」,一定需要一個科學合理、循序漸進、第一原理驅動的學習路線,千萬不要「瞎折騰」,不要急著學「滲透」,更不要一上來就用「工具」。因為 Web 安全滲透技術,首先是建立在 Web 技術之上的,繞開這些技術談安全談滲透,那便是 “空中樓閣”。
因此,如果你真正熱愛安全技術,目標是一名合格的白帽子黑客,甚至希望未來從事網絡空間安全相關職位,那么,前期潛心花費幾個月的時間,把這些未來干活必定會用到的技能耐心打磨好,是不是穩賺不賠的?畢竟,大學讀 4 年也未必能讓你找到工作。
=============================================
— 以下才是正文—
=============================================
0x01、那么,Web 安全滲透的學習路線應該是怎樣的?
考慮到很多朋友是新手,因此,接下來我會帶領你一起來制定這條路線:
《Web 安全工程師/滲透測試工程師學習路線圖》
所謂「授之以魚不如授之以漁」,本學習路線圖中我會告訴你每個階段需要學什么、為什么要學這些、需要花費多少時間、學完之后要達到的目標。
更重要的是,本學習路線圖提到的所有技術內容和推薦資源,都可以通過搜索引擎免費找到,包括書籍、文章、教程、工具等等。因此,只要足夠耐心,即便 0 基礎,按照這個路線圖,堅持學習 100 天,你也能夠通過自學的方式掌握這些技術。
注:100 天是我個人推薦的學習周期,結合了我們拼客學院多年來的安全教育經驗( 始于2013年 ),從企業雇主和學員們的各個數據反饋綜合得出。因此,這個周期未必適合每一個人,你可以根據自身情況來動態調整。
0x02、接下來,我們對這張路線圖進行階段拆解,分為(學習導論、技能清單、工具軟件、學習資源、學習周期)等方面詳細展開
第 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(任選一個)
-
Bitnami
-
PhpMyAdmin
-
-
CMS 程序包
-
WordPress
-
Joomla
-
Discuz
-
Dedecms
-
-
抓包調試
-
Postman
-
Npcap
-
Wireshark
-
1.3 學習資源
-
推薦網站
-
W3school
-
Runoob
-
-
推薦書籍
-
《 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 學習資源
-
推薦網站
-
W3school
-
Runoob
-
-
推薦書籍
-
《 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 項目
-
網站部署上線
3.2 工具軟件
-
PyCharm
-
Navicat
-
MySQL
3.3 學習資源
-
推薦網站
-
Python官網
-
Python手冊(中文版)
-
Django官網
-
Django項目
-
W3school
-
Runoob
-
-
推薦書籍
-
《 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子域名挖掘機)
-
-
漏洞掃描
-
BurpSuite
-
AWVS
-
Appscan
-
ZAP
-
WPscan
-
Joomscan
-
-
SQL注入漏洞
-
SQLmap
-
Pangolin
-
Havij
-
Discuz注入漏洞利用exp
-
-
XSS/CSRF漏洞
-
BeEF
-
-
文件上傳
-
中國菜刀
-
Cknife
-
edjpgcom
-
一句話圖片木馬
-
XISE WBMS
-
Weevely
-
-
命令執行
……
-
Struts2漏洞利用exp
-
4.3 學習資源
-
推薦書籍
-
《 Kali Linux 滲透測試學習清單 》
-
《 白帽子講 Web 安全 》
-
《 Web 安全深度剖析 》
-
《 Metaspolit 滲透測試魔鬼訓練營 》
-
《 Web 前端安全揭秘 》
-
《 黑客攻防技術寶典 Web 實戰篇 》
-
《 SQL 注入攻擊與防御 》
-
《 XSS 跨站腳本攻擊剖析與防御 》
-
……
4.4 學習周期
-
推薦 5 ~ 6 周
本文正式結束啦~~~
希望對所有想進入信息安全行業、或正在學習Web安全、滲透測試的朋友們帶來幫助~~~
=============================================
閱讀后的自我總結和反思
=============================================
1.Web通信協議:TCP/IP、DNS、HTTP、HTTPS
-
涉及Web安全的方面:抓包流量分析、hosts文件的修改、HTTP/*S的各種請求和回應
-
對其掌握程度:曾經學過,當時掌握的不錯,現在對概念有點模棱兩可
-
現在要做的:需要快速過一遍
2.Web前端技術:HTML、CSS、JavaScript、jQuery、bootstrap
-
涉及Web安全的方面:客戶端安全,對應著XSS和CSRF漏洞
-
對其掌握程度:曾經學過HTML、CSS,其余的不會
-
現在要做的:需要從零開始,這五個都要學
3.Web后端技術:Java/spring、php/Laravel、python/djangp
-
涉及Web安全的方面:服務器安全,對應著Webshell木馬、文件上傳、代碼執行漏洞
-
對其掌握程度:學過JAVA,沒認真學,涼涼;PHP和python正在學
-
現在要做的:深入學習PHP和Python,縱向擴展其它
4.Web容器/中間件:Apache、Nginx、Tomcat
-
涉及Web安全的方面:對于各種容器的默認配置文件,以及現有的CVE等等
-
對其掌握程度:只是知道
-
現在要做的:深入學習Apache,縱向擴展Nginx和Tomcat和IIS
5.數據庫:MySQL、SQL server、Oracle、mongodb
-
涉及Web安全的方面:數據庫安,對應著SQL注入之手工注入
-
對其掌握程度:學過一點MySQL,對于MySQL的手工注入會一部分,其余的不會
-
現在要做的:深入學習MySQL極其注入,縱向擴展其它
6.操作系統:Windows、Linux(linux學的還行,現在有點淡忘)
-
涉及Web安全的方面:服務器安全,對應著對靶機的基礎操作
-
對其掌握程度:學過Linux基礎,搭建過Linux的相關服務
-
現在要做的:深入學習Linux,縱向擴展其它
=============================================
總結
以上是生活随笔為你收集整理的1.零基础如何学习Web安全渗透测试?[通俗易懂](自由的百科全书)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 查找包含指定关键字的BDOC
- 下一篇: 如何分析SAPPSPRO-S_MAT_E