1.WEB技術(shù):
- 靜態(tài)WEB
- 動(dòng)態(tài)WEB:
- 應(yīng)用程序
- 數(shù)據(jù)庫
- 每人看到的內(nèi)容不同
- 根據(jù)用戶輸入返回不同結(jié)果
2.WEB攻擊面:
從web來說,應(yīng)該從整體上考慮在整個(gè)web訪問、構(gòu)建構(gòu)成中,需要哪些環(huán)節(jié),然后在針對(duì)每個(gè)環(huán)節(jié)進(jìn)行分析:
- Network:網(wǎng)絡(luò)
- OS
- WEB Server
- App Server
- Web Application
- Database
- Browser
3.HTTP協(xié)議基礎(chǔ)
3.1 明文傳輸
- 無內(nèi)建的機(jī)密性安全機(jī)制
- 嗅探或代理階段可查看全部明文信息
- https只能提高傳輸層安全(可以通過中間人劫持,將加密數(shù)據(jù)流一分為二,由中間人構(gòu)造證書接收client請(qǐng)求,并由中間人在發(fā)給server,接收也是一分為二的過程)
3.2 無狀態(tài)
- 每一次客戶端和服務(wù)器端的通信都是獨(dú)立的過程
- WEB由于需要跟蹤客戶端會(huì)話(多步通信)
不適用cookie的應(yīng)用,客戶端每次請(qǐng)求都要重新身份驗(yàn)證(不太實(shí)際)(cookie可以存放session id,與session不是一個(gè)概念) - Session用于在用戶身份驗(yàn)證后跟蹤用戶行為軌跡(提供用戶體驗(yàn),但增加了攻擊向量)
3.3 Cycle單元
請(qǐng)求/響應(yīng):一個(gè)http基本的單元就是一個(gè)請(qǐng)求對(duì)應(yīng)一個(gè)響應(yīng)
3.4 重要的header
- server響應(yīng)header
- Set-Cookie:服務(wù)器發(fā)給客戶端的Sesssion ID(Session ID的值放在Set-Cookie字段里返回給客戶端,存在被竊取的風(fēng)險(xiǎn))
- Content-Length:響應(yīng)body部分的字節(jié)長度(暴力破解中,根據(jù)server返回給client返回頁面的長度,可以判斷是否破解成功)
- Location:重定向到另一個(gè)頁面,可識(shí)別身份認(rèn)證后允許訪問的頁面(用戶登錄成功后看到的頁面)
- client請(qǐng)求header
- Cookie:客戶端發(fā)回給服務(wù)器證明用戶狀態(tài)的信息(頭=值,成對(duì)出現(xiàn))
- Referrer:發(fā)起新請(qǐng)求之前用戶位于哪個(gè)頁面,服務(wù)器基于此頭的安全限制很容易被修改繞過
3.5 狀態(tài)碼
服務(wù)端響應(yīng)的狀態(tài)碼表示響應(yīng)的結(jié)果類型(5大類50多個(gè)具體響應(yīng)碼)
- 100s:服務(wù)器響應(yīng)的信息,通常表示服務(wù)器還有后續(xù)處理,很少出現(xiàn)
- 200s:請(qǐng)求被服務(wù)器成功接受并處理后返回的響應(yīng)結(jié)果
- 300s:重定向,通常在身份認(rèn)證成功后重定向到一個(gè)安全頁面(301永久重定向/302臨時(shí)重定向)
- 400s:表示客戶端請(qǐng)求錯(cuò)誤
- 401:需要身份驗(yàn)證
- 402:拒絕訪問
- 404:目標(biāo)未發(fā)現(xiàn)
- 500s:服務(wù)器內(nèi)部錯(cuò)誤(503:服務(wù)不可用)