【小迪安全】web安全|滲透測試|網(wǎng)絡(luò)安全(6個月線上培訓(xùn)全套)

基礎(chǔ)入門(P1-P5)
本階段為基礎(chǔ)階段 主要記重點地方,其他詳細(xì)內(nèi)容 需要各位自行拓展。
微信搜索關(guān)注公眾號:黑戰(zhàn)士
獲取小迪的工具包和靶機(jī)
以及更多干貨和學(xué)習(xí)資料!
P1. 概念名詞
什么是域名?
- 域名:是由一串用點分隔的名字組成的Internet上某一臺計算機(jī)或計算機(jī)組的名稱,用于在數(shù)據(jù)傳輸時對計算機(jī)的定位標(biāo)識(有時也指地理位置)。
什么是二級域名多級域名?
- 二級域名:分兩種
- 在國際頂級域名下的二級域名
- 國際頂級域名下二級域名, 二級域名一般是指域名注冊人選擇使用的網(wǎng)上名稱,如“yahoo.com”;上網(wǎng)的商業(yè)組織通常使用自己的商標(biāo)、商號或其他商業(yè)標(biāo)志作為自己的網(wǎng)上名稱,如“microsoft.com”。
- 國家頂級域名下二級域名
- 在國家頂級域名之下二級域名一般是指類似于國際頂級域名的表示注冊人類別和功能的標(biāo)志。例如,在“.com.cn”域名結(jié)構(gòu)中,“.com”此時是置于國家頂級域名“.cn”下的二級域名,表示商業(yè)性組織,以此類推。
域名發(fā)現(xiàn)對于安全測試意義
- 可以給安全測試提供更多的測試點,方便獲取更多相關(guān)信息
1.2 DNS
什么是 DNS?
- 域名系統(tǒng)(Domain?Name?System)。它是一個域名和IP地址相互映射的一個分布式數(shù)據(jù)庫,能夠使人更方便地訪問互聯(lián)網(wǎng)。DNS使用UDP端口53。對于每一級域名長度的限制是63個字符,域名總長度則不能超過253個字符。
本地 HOSTS 與 DNS 的關(guān)系?
- Hosts在本地將一些常用的網(wǎng)址域名與其對應(yīng)的IP地址建立一個關(guān)聯(lián)“數(shù)據(jù)庫”,當(dāng)我們訪問域名時,系統(tǒng)會首先自動從Hosts文件中尋找對應(yīng)的IP地址,一旦找到,系統(tǒng)會立即打開對應(yīng)網(wǎng)頁,如果沒有找到,則系統(tǒng)會再將網(wǎng)址提交DNS域名解析服務(wù)器進(jìn)行IP地址的解析。
- Hosts地址:C:\Windows\System32\drivers\etc\hosts
CDN 是什么?與 DNS 的關(guān)系?
- CDN:是構(gòu)建在數(shù)據(jù)網(wǎng)絡(luò)上的一種分布式的內(nèi)容分發(fā)網(wǎng)。可以提高系統(tǒng)的響應(yīng)速度,也可以一定程度的攔截/f防御攻擊。
常見的 DNS 安全攻擊有哪些?
- 緩存投毒:它是利用虛假Internet地址替換掉域名系統(tǒng)表中的地址,進(jìn)而制造破壞。
- DNS劫持:是指在劫持的網(wǎng)絡(luò)范圍內(nèi)攔截域名解析的請求,分析請求的域名,把審查范圍以外的請求放行,否則返回假的IP地址或者什么都不做使請求失去響應(yīng),其效果就是對特定的網(wǎng)絡(luò)不能訪問或訪問的是假網(wǎng)址。(針對面較廣)
- 域名劫持:域名劫持就是在劫持的網(wǎng)絡(luò)范圍內(nèi)攔截域名解析的請求,分析請求的域名,把審查范圍以外的請求放行,否則直接返回假的IP地址或者什么也不做使得請求失去響應(yīng),其效果就是對特定的網(wǎng)址不能訪問或訪問的是假網(wǎng)址。(針對面窄一點)
- DNS DDOS攻擊:通過控制大批僵尸網(wǎng)絡(luò)利用真實DNS協(xié)議棧發(fā)起大量域名查詢請求,利用工具軟件偽造源IP發(fā)送海量DNS查詢,發(fā)送海量DNS查詢報文導(dǎo)致網(wǎng)絡(luò)帶寬耗盡而無法傳送正常DNS查詢請求。
1.3 腳本語言
常見的腳本語言類型有哪些?
- asp php aspx jsp javaweb pl py cgi 等
不同腳本類型與安全漏洞的關(guān)系?
- 不同腳本可能爆發(fā)漏洞的可能性有所不同
- 不同腳本漏洞的存在點可能不同,因為不同語言的適用范圍不同
1.4 后門
什么是后門?
- 通常指那些繞過安全性控制而獲取對程序或系統(tǒng)訪問權(quán)的程序方法。
- 在軟件的開發(fā)階段,程序員常常會在軟件內(nèi)創(chuàng)建后門程序以便可以修改程序設(shè)計中的缺陷。
后門在安全測試中的實際意義?
- 可以更方便的鏈接到主機(jī)
- 在獲取到玩主機(jī)權(quán)限的時候,后門可以充當(dāng)命令控制臺的角色
1.5 WEB
WEB 的組成架構(gòu)模型?
- 網(wǎng)站源碼:分腳本類型,分應(yīng)用方向
- 操作系統(tǒng):windows linux
- 中間件(搭建平臺):apache iis tomcat nginx 等
- 數(shù)據(jù)庫:access mysql mssql oracle sybase db2 postsql 等
為什么要從 WEB 層面為主為首?
- web使用的比較廣
- web網(wǎng)站了漏洞相對較多
- web 作為跳板深入到其他資源相對容易
1.6 WEB 相關(guān)安全漏洞
- WEB 源碼類對應(yīng)漏洞:SQL 注入,上傳,XSS,代碼執(zhí)行,變量覆蓋,邏輯漏洞,反序列化等
- WEB 中間件對應(yīng)漏洞:未授權(quán)訪問,變量覆蓋...
- WEB 數(shù)據(jù)庫對應(yīng)漏洞:弱口令,權(quán)限提升...
- WEB 系統(tǒng)層對應(yīng)漏洞:提權(quán),遠(yuǎn)程代碼執(zhí)行
- 其他第三方對應(yīng)漏洞
- APP 或 PC 應(yīng)用結(jié)合類
資源
http://www.xyaz.cn http://www.downcc.com/soft/11196.html https://github.com/quasar/QuasarRAT/releases #如失效 不補(bǔ). https://pan.baidu.com/s/13_i1ExwEaA59GfMt1Rp0Hg提取碼: 0b7b
P2. 數(shù)據(jù)包擴(kuò)展
2.1 https&http

- HTTPS協(xié)議需要到CA申請證書,一般免費證書很少,需要交費。
- HTTP協(xié)議運行在TCP之上,所有傳輸?shù)膬?nèi)容都是明文,HTTPS運行在SSL/TLS之上,SSL/TLS運行在TCP之上,所有傳輸?shù)膬?nèi)容都經(jīng)過加密的。
- HTTP和HTTPS使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。
- HTTPS可以有效的防止運營商劫持,解決了防劫持的一個大問題。
2.2 Request 請求數(shù)據(jù)包數(shù)據(jù)格式
POST?/adduser?HTTP/1.1
Host:?localhost:8030
Connection:?keep-alive
Content-Length:?16
Pragma:?no-cache
Cache-Control:?no-cache
Origin:?chrome-extension://fdmmgilgnpjigdojojpjoooidkmcomcm
User-Agent:?Mozilla/5.0?(Windows?NT?6.1;?Win64;?x64)?AppleWebKit/537.36?(KHTML,?like?Gecko)
Chrome/66.0.3359.181?Safari/537.36
Content-Type:?application/x-www-form-urlencoded
Accept:?*/*
Accept-Encoding:?gzip,?deflate,?br
Accept-Language:?zh-CN,zh;q=0.9
請求頭
由關(guān)鍵字/值對組成,每行一對,關(guān)鍵字和值用冒號分享。請求頭標(biāo)通知服務(wù)器騰于客戶端的功能和標(biāo)識。 HOST:?主機(jī)或域名地址 Accept:指瀏覽器或其他客戶可以接愛的 MIME 文件格式。Servlet 可以根據(jù)它判斷并返回適當(dāng)?shù)奈募?式。 User-Agent:是客戶瀏覽器名稱 Host:對應(yīng)網(wǎng)址 URL 中的 Web 名稱和端口號。 Accept-Langeuage:指出瀏覽器可以接受的語言種類,如 en 或 en-us,指英語。 connection:用來告訴服務(wù)器是否可以維持固定的 HTTP 連接。http 是無連接的,HTTP/1.1 使用 Keep-Alive 為默認(rèn)值,這樣,當(dāng)瀏覽器需要多個文件時(比如一個?HTML?文件和相關(guān)的圖形文件),不需要每次都建立 連接 Cookie:瀏覽器用這個屬性向服務(wù)器發(fā)送 Cookie。Cookie 是在瀏覽器中寄存的小型數(shù)據(jù)體,它可以記載 和服務(wù)器相關(guān)的用戶信息,也可以用來實現(xiàn)會話功能。 Referer :?表?明?產(chǎn)?生?請?求?的?網(wǎng)?頁 URL 。?如?比?從?網(wǎng)?頁?/icconcept/index.jsp 中?點?擊?一?個?鏈?接?到?網(wǎng)?頁 /icwork/search?,?在?向?服?務(wù)?器?發(fā)?送?的?GET/icwork/search?中?的?請?求?中?,?Referer?是 http://hostname:8080/icconcept/index.jsp。這個屬性可以用來跟蹤 Web 請求是從什么網(wǎng)站來的。 Content-Type:用來表名 request 的內(nèi)容類型。可以用 HttpServletRequest 的 getContentType()方法取得。 Accept-Charset:指出瀏覽器可以接受的字符編碼。英文瀏覽器的默認(rèn)值是 ISO-8859-1. Accept-Encoding:指出瀏覽器可以接受的編碼方式。編碼方式不同于文件格式,它是為了壓縮文件并加 速文件傳遞速度。瀏覽器在接收到 Web 響應(yīng)之后先解碼,然后再檢查文件格式。
空行
- 最后一個請求頭標(biāo)之后是空行,發(fā)送回車符和退行,通知服務(wù)器以下不再有頭標(biāo)。
請求數(shù)據(jù)
- 使用 POST 傳送,最常使用的是 Content-Type 和 Content-Length 頭標(biāo)。
2.3 Response 返回數(shù)據(jù)包數(shù)據(jù)格式
Response 請求數(shù)據(jù)包數(shù)據(jù)格式
一個響應(yīng)由四個部分組成;狀態(tài)行、響應(yīng)頭標(biāo)、空行、響應(yīng)數(shù)據(jù)。 1.狀態(tài)行:協(xié)議版本、數(shù)字形式的狀態(tài)代碼和狀態(tài)描述,個元素之間以空格分隔 2.響應(yīng)頭標(biāo):包含服務(wù)器類型、日期、長度、內(nèi)容類型等 3.空行:響應(yīng)頭與響應(yīng)體之間用空行隔開 4.響應(yīng)數(shù)據(jù):瀏覽器會將實體內(nèi)容中的數(shù)據(jù)取出來,生成相應(yīng)的頁面
HTTP 響應(yīng)碼:
1xx:信息,請求收到,繼續(xù)處理 2xx:成功,行為被成功地接受、理解和采納 3xx:重定向,為了完成請求,必須進(jìn)一步執(zhí)行的動作 4xx:客戶端錯誤 5xx:服務(wù)器錯
資源
https://www.mozhe.cn/ https://www.mozhe.cn/bug/N2dmMnp1b1VYd2EzLzBNR3MvRVlIZz09bW96aGUmozhe
微信搜索關(guān)注公眾號:黑戰(zhàn)士
獲取工具和靶機(jī)
以及更多干貨和學(xué)習(xí)資料!
P3. 搭建安全拓展
域名掃描只能掃描出來域名文件,而域名文件只是占服務(wù)器資源的一小部分;IP掃描可以直接掃描出來服務(wù)器的根目錄,得到的信息更多;
3.1 網(wǎng)站搭建環(huán)境
- ASP,PHP,ASPX,JSP,PY,JAVAWEB 等環(huán)境
WEB 源碼中敏感文件
- 后臺路徑,數(shù)據(jù)庫配置文件,備份文件等
3.2 基于中間件的簡要識別

3.3 后門注意事項
- 后門是否給予執(zhí)行權(quán)限
- 后門是否給予操作目錄或文件權(quán)限
- 后門是否給予其他用戶權(quán)限
P4. WEB 源碼拓展
WEB 源碼在安全測試中是非常重要的信息來源,可以用來代碼審計漏洞也可以用來做信息突破口,其中 WEB 源碼有很多技術(shù)需要簡明分析。
4.1 知識點
- 關(guān)于 WEB 源碼目錄結(jié)構(gòu)
- 關(guān)于 WEB 源碼腳本類型
- 關(guān)于 WEB 源碼應(yīng)用分類
- 關(guān)于 WEB 源碼其他說明
4.2 信息敏感點
- 敏感目錄結(jié)構(gòu):數(shù)據(jù)庫配置文件,后臺目錄,模版目錄,數(shù)據(jù)庫目錄等
- web腳本類型:ASP,PHP,ASPX,JSP,JAVAWEB 等腳本類型源碼
- 應(yīng)用分類:社交,論壇,門戶,第三方,博客等不同的代碼機(jī)制對應(yīng)漏洞
- 開源,未開源問題,框架非框架問題,關(guān)于 CMS 識別問題及后續(xù)等
- 關(guān)于源碼獲取的相關(guān)途徑:搜索,咸魚淘寶,第三方源碼站
關(guān)注應(yīng)用分類及腳本類型估摸出可能存在的漏洞(其中框架類例外),在獲取源碼后可進(jìn)行本地安全測試或代碼審計,也可以分析其目錄工作原理(數(shù)據(jù)庫備份,bak 文件等),未獲取到的源碼采用各種方法想辦法獲取。

style.css:這個文件可以用來生成md5值來查尋cms框架??梢酝ㄟ^網(wǎng)頁刷新時加載的文件來搜索cms。
資源
https://www.yunsee.cn https://w.ddosi.workers.dev http://whatweb.bugscaner.com https://github.com/Lucifer1993/cmsprint https://github.com/M4tir/Github-Monitor https://websec.readthedocs.io/zh/latest/language/index.html
P5. 系統(tǒng)&數(shù)據(jù)庫

5.1 操作系統(tǒng)層面
識別操作系統(tǒng)常見方法
- 看字母大小寫,windows對大小寫不敏感,Linux敏感
- 看ping值 --ttl在64左右,linux --ttl在128左右windows
- nmap -O ip
簡要兩者區(qū)別及識別意義情況
- 可以幫助我們明確思路
- 可以篩選掉不符合系統(tǒng)的情況
操作系統(tǒng)層面漏洞類型對應(yīng)意義
- 覆蓋面廣
- 獲取的權(quán)限高
- 危害性大
5.2 數(shù)據(jù)庫層面
識別數(shù)據(jù)庫類型常見方法
- nmap -O ip
- nmap ip -p 端口,通過端口開放反推數(shù)據(jù)庫
數(shù)據(jù)庫類型區(qū)別及識別意義
- 數(shù)據(jù)庫的漏洞和類型相性很強(qiáng)
- 不同數(shù)據(jù)庫漏洞爆發(fā)點不太一樣
- 能確定數(shù)據(jù)庫類型、版本,會對滲透有很大幫助
數(shù)據(jù)庫常見漏洞類型及攻擊
- 弱口令
- sql注入
簡要數(shù)據(jù)庫層面漏洞影響范圍
- 要參考數(shù)據(jù)庫的重要程來判定影響范圍
常見的數(shù)據(jù)庫結(jié)構(gòu)
- ASP+Access
- php+mysql
- axpx+mssql
- jsp+mssql,oracle
- python+mongodb
服務(wù)器端口
- 關(guān)系型數(shù)據(jù)庫 --MySQL:3306 --SqlServer:1433 --Oracle:1521
- NOSQL數(shù)據(jù)庫 --MongoDB:27017 --Redis:6379 --memcached:11211
第三方
- 如何判斷那些有第三方平臺或軟件 -- 端口掃描 -- 特征匹配
- 簡要為什么要識別第三方平臺或軟件 -- 可以提供額外的攻擊面
- 常見第三方平臺或軟件漏洞類型及攻擊 -- 弱口令
- 簡要第三方平臺或軟件安全測試的范圍
除去常規(guī)WEB安全及APP安全測試外,類似服務(wù)器單一或復(fù)雜的其他服務(wù)( 郵件,游戲,負(fù)載均衡等),也可以作為安全測試目標(biāo),此類目標(biāo)測試原則只是少了WEB應(yīng)用或其他安全問題。所以明確安全測試思路是很重要的!
資源
https://nmap.org/ https://www.kali.org/downloads/ https://github.com/hellogoldsnakeman/masnmapscan-V1.0 https://pypi.tuna.tsinghua.edu.cn/simple-------清華大學(xué)python鏡像 https://pypi.tuna.tsinghua.edu.cn-------清華大學(xué)python鏡像