
XSS 跨站(zhàn)腳本攻擊(Cross-Si₩δte Scripting)是(shì)一(yī)種常見(jiàn)的(de©• )網絡安全漏洞。攻擊者利用(yòng)這(zhè)個(÷£φgè)漏洞在目标網站(zhàn)上(shàng)注入惡意腳本≠α↕>,當用(yòng)戶訪問(wèn)包含惡意腳本的(de)網頁時(shí),浏"•覽器(qì)會(huì)解析并執行(xíng)這(zh εè)些(xiē)腳本,從(cóng)而導緻各種>↔≈安全問(wèn)題。
常見(jiàn)的(de)攻擊場(chǎng)景有(yǒπ∑u)很(hěn)多(duō)。例如(rú),在具有(yǒu)用(yò ✘≤ng)戶輸入功能(néng)的(de)地(dì)方,如(rú)搜索框、評論$α€區(qū)、聯系表單等,攻擊者可(kě)以注入惡意£↔腳本。反射型 XSS 攻擊中,攻擊者誘使用(yòng₽¥)戶點擊一(yī)個(gè)嵌入惡意腳本的(de)鏈接,用(yòn≈₩g)戶提交的(de)數(shù)據被立即反饋到(dào)浏覽器(qì),惡"ε♠意腳本直接嵌入在 URL 中。比如(rú),用(yòng)戶可(kě)♥₽£✔能(néng)會(huì)收到(dào)一(yī)個(gè)看(kàn)似正£Ω>≥常的(de)鏈接,但(dàn)實際上(shàn'∑★≈g)鏈接中包含惡意腳本,一(yī)旦用(y£¥òng)戶點擊,惡意腳本就(jiù)會(huì)在'×α'用(yòng)戶的(de)浏覽器(qì)中執行(xíλφγng)。
存儲型 XSS 攻擊則更為(wèi)危險,攻擊者将惡意腳本存儲在服γ★★務器(qì)端,比如(rú)存儲在數(shù)據↕♣₹庫中。當其他(tā)用(yòng)戶訪問(wèn)相(≤₩₽φxiàng)關頁面時(shí),惡意腳本就(jiù)會(huì)被執行(xín♥≥∑±g)。想象一(yī)下(xià),一(yī)個(gè)攻擊者¥★¶σ在論壇上(shàng)發表一(yī)篇帶有(yǒu)惡意腳本的(d" λ e)文(wén)章(zhāng),所有(σ♦←yǒu)閱讀(dú)這(zhè)篇文(wén)章(zhāng)的(de)用↕₩✘→(yòng)戶都(dōu)會(huì)受到(dào$↓÷≈)攻擊。
DOM 型 XSS 攻擊通(tōng)過修改頁面的(de) DOM 結構來₹ (lái)執行(xíng)惡意腳本,攻擊∑&>→代碼無需經過服務器(qì)。例如(rú),攻擊者可(kě)以利用(yòng)網$§頁中的(de) JavaScript 代₹✔碼漏洞,修改頁面的(de) DOM 元素$®β✔,插入惡意腳本。
這(zhè)些(xiē)攻擊場(chǎng)景都(dōu)可(k'♥φě)能(néng)導緻嚴重的(de)後果,如(₹ rú)竊取用(yòng)戶信息,包括用(yòng)戶名φε≤、密碼、信用(yòng)卡信息等;破壞網站←σ•(zhàn)功能(néng),如(rú)修改網站(zhàn)內(n∑÷èi)容、删除數(shù)據;傳播惡意軟件(ji♠ε×àn),如(rú)病毒、木(mù)馬等。
總之,XSS 跨站(zhàn)腳本攻擊是(shì)一(yī)個≠≈ ₩(gè)嚴重的(de)網絡安全威脅,需要(yào)我們< ×高(gāo)度重視(shì)并采取有(yǒu)效的(de)防範措施。
二、XSS 的(de)類型及特點
(一(yī))反射型 XSS
1. 特點是(shì)黑(hēi)客需誘使用(yòng)戶點擊惡意鏈接×←£,常用(yòng)于釣魚網站(zhàn)獲取用(yòng)戶重要(yào)信β∞息。
反射型 XSS 攻擊具有(yǒu)即時(shí)性和(hé)單次性的✘φ(de)特點。攻擊者精心構造含有(yǒu)惡意 Ja₩εΩ↑vaScript 腳本的(de)鏈接,一(yī)旦用(yòng)¥∑戶點擊該鏈接,服務器(qì)接收用(yòng☆∑→β)戶請(qǐng)求後,可(kě)能(néng)會(huì)将惡意腳本數(s×↕πhù)據返回給用(yòng)戶浏覽器(qì)。₽≈由于整個(gè)過程就(jiù)像是(shì)一(yī)次 “客戶×♠€÷端 — 服務器(qì) — ↓↔客戶端” 的(de)反射過程,φ≈惡意腳本沒有(yǒu)經過服務器(qì)的(d®> e)過濾或處理(lǐ),就(jiù)被反射回客戶端§↔σ直接執行(xíng)并顯示相(xiàng)應的(d← e)結果。這(zhè)種攻擊方式通(tō∑♥ng)常依賴用(yòng)戶互動,隻有(yǒu)在λ¶§&用(yòng)戶點擊惡意鏈接時(shí)才¶✘$會(huì)觸發,且隻執行(xíng)一(yī)次。例如(rú),ε♣≥×攻擊者可(kě)能(néng)會(huì)• 發送一(yī)封看(kàn)似正常的(de)電(diλ®"¥àn)子(zǐ)郵件(jiàn),其中包含一(yī)個(gè)誘人(r→≤én)的(de)鏈接,如(rú) “點擊查看(kàn)最γ♠新優惠活動”,當用(yòng)戶點擊這(zhè)個(gè ©♠÷)鏈接後,就(jiù)可(kě)能(nén ¥§g)會(huì)觸發反射型 XSS 攻擊,導緻用(y↓↔∏òng)戶的(de)敏感信息被竊取。
2. 工(gōng)作(zuò)原理(lǐ)是(s<∑'₹hì)利用(yòng)網站(zhàn)漏δ<φ↓洞,當用(yòng)戶點擊惡意鏈接後,正常網站(zhà∏•σn)嵌入惡意腳本。
具體(tǐ)來(lái)說(shuō),攻擊者首先構造含有(♥€yǒu)惡意腳本的(de)數(shù)據,這(zhè)些(xiē)數♣×(shù)據可(kě)能(néng)通(tōng)過 Uβ&®↓RL 參數(shù)、表單提交等方式傳遞±β到(dào)客戶端。當用(yòng)戶的(de)浏覽器→•¶(qì)接收到(dào)這(zhè)些(xiē) αΩ數(shù)據後,服務器(qì)處理(lǐ)用(yòng)戶請(qǐn¶≤₩g)求并進行(xíng)響應,響應由浏覽器(®♣'qì)解析後将 JavaScript 腳本的(de)執行(xíng)結果顯→☆"示在頁面中。如(rú)果網站(zhàn)存在漏洞★ →♥,沒有(yǒu)對(duì)用(yòng)戶輸÷×入的(de)數(shù)據進行(xíng)充分(fēn)的(de'σ™)過濾和(hé)驗證,那(nà)麽惡意腳本就(jiù)會(huì)被嵌入到(←↕dào)正常的(de)網頁中。比如(rú),一(yī)≠α≥個(gè)購(gòu)物(wù)網站(zhàn)的(de)搜索功能≠ (néng)可(kě)能(néng)存在反射型 XSS 漏洞,攻擊者構造&↕®☆一(yī)個(gè)惡意鏈接,其中包含惡意腳本作(zuò)"'✘為(wèi)搜索參數(shù),當用(yòng)戶點擊該鏈接進α"行(xíng)搜索時(shí),惡意腳本就(jiù)會(huì)在頁面中執行(xíng),可(kě)能(néng)會(huì)竊取用(yòng♥£< )戶的(de)登錄憑證或其他(tā)敏感信息。
(二)存儲型 XSS
1. 黑(hēi)客在博客等網站(zhàn)發表惡↓☆意代碼內(nèi)容,被保存後所有(yǒu)訪問(wèn)用(yò"→α→ng)戶都(dōu)會(huì)執行(xíng)✘↔δφ惡意代碼。
存儲型 XSS 攻擊具有(yǒu)持久性和(hé)廣泛性的(de)特®Ω點。攻擊者在發帖的(de)過程中,将惡意腳本連同正常信息$±&↔一(yī)起注入帖子(zǐ)的(de)內(nèi)容中,₹♥×±随著(zhe)帖子(zǐ)被服務器(qì)存儲下($₩xià)來(lái),惡意腳本也(yě)永久地☆ (dì)被存放(fàng)在服務器(qì)•&的(de)後端數(shù)據庫中。當其他(tā)用(y>™òng)戶浏覽這(zhè)個(gè)被注入了(§∞le)惡意腳本的(de)帖子(zǐ)時(shí),惡意腳本會(huì)在¥≠↓他(tā)們的(de)浏覽器(qì)中得γ€↑(de)到(dào)觸發。這(zhè)種攻擊方式常見(jiàn)于用(↑≠±yòng)戶留言、評論、用(yòng)戶昵稱、用(yòn≠•g)戶信息等位置。例如(rú),在一(yī)個(gè)論壇上(shàng)"γ$§,攻擊者發表一(yī)篇帶有(yǒu)惡意腳本的(de)帖子(z₩δ•ǐ),所有(yǒu)浏覽這(zhè)篇帖子(zǐ)的(de)用(y✔×òng)戶都(dōu)會(huì)受到(dào)攻擊,>↓無論何時(shí)何地(dì),隻要(yào)用(yòng)戶→€<∞訪問(wèn)該帖子(zǐ),惡意腳本就(jiùε↔←↕)會(huì)被執行(xíng)。
2. 危害較大(dà),可(kě)竊取用(yòng)戶 cookie,甚↔>λ∞至獲取管理(lǐ)員(yuán)權限登陸>÷ 網站(zhàn)後台。
存儲型 XSS 攻擊的(de)危害非常嚴重。×↓•™一(yī)方面,攻擊者可(kě)以在惡意腳本中編寫代碼,£☆以獲取用(yòng)戶的(de)賬号、密碼、銀(y< 'ín)行(xíng)卡号等敏感信息。另一(yī)方面,✔λ'&攻擊者可(kě)以通(tōng)過惡意腳本代碼竊取用(yòng)戶的(d ₩∑e)會(huì)話(huà)信息,并以此來(lái)冒充用$≤(yòng)戶進行(xíng)非法操作(zuò)。甚至,¥✘∑攻擊者可(kě)以利用(yòng)存儲型 XSS 漏洞獲取管理(lǐ)∏≥員(yuán)權限,登陸網站(zhàn)後台,對σ★(duì)網站(zhàn)進行(xíng)破壞。據統計(jì),大←δ£(dà)約有(yǒu) [X]% 的(de)網站(zhàn)安全事(shì)件 ←₽☆(jiàn)是(shì)由存儲型 XSS 攻©×擊引起的(de)。例如(rú),攻擊者在一(yī)個(gè)博客網站(☆₹>zhàn)發表一(yī)篇帶有(yǒu)惡意腳本的(dΩ©§↑e)文(wén)章(zhāng),當管理(lǐ)員€(yuán)浏覽這(zhè)篇文(wén)章(zhāng)時(•★↔λshí),惡意腳本可(kě)能(néng)會(huì)竊取管理(lǐ)員®>¥$(yuán)的(de) cookie,攻擊者利用(yòng)竊取到(dà₽γ₽↕o)的(de) cookie 就(jiù)可(kě)以冒充管理(♦★εlǐ)員(yuán)登陸網站(zhàn)後台,進行(xíng∞≈←β)惡意操作(zuò)。
(三)DOM 型 XSS
1. 特殊類型的(de)反射型 XSS,基于 DOM 文(wén)檔對(duφ§ì)象模型的(de)漏洞。
DOM 型 XSS 是(shì)一(yī)種特殊↔♥γ類型的(de)反射型 XSS,它是(shì)基于 DOM 文(wén)檔α'♥對(duì)象模型的(de)一(yī)種漏洞。HTML 的(de)标簽都(₽ →↑dōu)是(shì)節點,而這(zhè)些(xiē)節點組$✔₽成了(le) DOM 的(de)整體(tǐ)結構 &md ₹ash;— 節點樹(shù)。通(tōng₹∑§)過 HTML DOM,樹(shù)中的(de)所¶♥σ有(yǒu)結點均可(kě)通(tōng)過 Ja∞'±vaScript 進行(xíng)訪問(wèn)。所有(yǒu) HTMLσ ≈" 元素(節點)均可(kě)被修改,也(yě☆≤)可(kě)以創建或删除節點。這(zhè)就(jiù)為(wè→±↔≤i) DOM 型 XSS 攻擊提供了(le)可(kě)能>α₩γ(néng)。與傳統的(de)反射型 XSS 攻擊不(b"£↓ù)同,DOM 型 XSS 完全在客戶端執行(xíng),不(bΩ$ù)涉及服務器(qì)端的(de)任何改變。攻擊發生★∞≠<(shēng)在客戶端,通(tōng)過 JavaScript 操作(zu←✘ò) DOM,直接在浏覽器(qì)中注入惡意代碼。
2. 特點是(shì)不(bù)需要(yào)服務器(qì)解析 €,觸發靠浏覽器(qì)端 DOM 解析。
DOM 型 XSS 攻擊的(de)特點是(shì)惡意代碼通γ<(tōng)常不(bù)會(huì)經過服務器(qì),而是(β≈shì)通(tōng)過客戶端腳本處理(lǐ)數(shù)據時(shí)注入∞×α。攻擊的(de)觸發依賴于浏覽器(qì)環境,受到(dàφ↔♠ o)浏覽器(qì)版本和(hé)插件(jiàn)等客戶端環境的(de)影(✔•≈∞yǐng)響。例如(rú),一(yī)個(gè) Web 應用(yσδ®òng)程序允許用(yòng)戶通(tōng)過 URβγ®L 參數(shù)搜索內(nèi)容,并且使用(yòng)φγ$ JavaScript 來(lái)更新頁面內(→"÷nèi)容。如(rú)果攻擊者将惡意腳本作(zuò)為( <πwèi)查詢參數(shù),當頁面加載時(shí),DOM 操作(zuò)解析&÷該參數(shù)并執行(xíng)惡意腳本。這(zhè)種攻擊方式具有(yǒ♥ ≠u)隐蔽性,因為(wèi)服務器(qì)端的(de)日(rì)志(zhì)★δφ可(kě)能(néng)不(bù)會(hβ♥uì)記錄任何異常,這(zhè)使得(de)檢測和≈φ (hé)追蹤變得(de)更加困難。
三、XSS 攻擊的(de)表現(xiàn)平台
(一(yī))知(zhī)乎平台
- 老(lǎo)問(wèn)題導緻的(de) XSS >®漏洞,利用(yòng) JavaScripλ♠t: 僞協議(yì)執行(xíng) js 代±碼。
- 知(zhī)乎的(de) CSRF 防禦機(jī)制→<(zhì)及 Tornado 對(duì) Cookie ₽ 的(de)處理(lǐ)特點。
-
- 知(zhī)乎檢查 CSRF 漏洞的(de)方式是(shì)為(w♥&¥ èi)用(yòng)戶設置一(yī)個(gè)随機(jī) Cookie €↑叫_xsrf,用(yòng)戶填寫表單時(shí)'ε☆,表單裡(lǐ)會(huì)自(zì)動插入一(yī)個(gè)★∞♣隐藏的(de)項目也(yě)叫_xsrf。後端會(huì)将表單裡(lǐ)≈♥₽"的(de)_xsrf 和(hé) cookie 中所帶的(de)_xsrf 進↓ 行(xíng)比對(duì),若二者相(xiàng)同☆λ,則說(shuō)明(míng)為(wèi)合法≤¥φ表單。Tornado 中利用(yòng) ₽ε'§python 自(zì)帶的(de) Cookie 庫處理(lǐ) Cook£↕ie,解析 HEADER 中的(de) Cookie ₽Ω§後一(yī)個(gè)個(gè)賦值在 self 中,若存在同名 Cook♦←ie,後者将覆蓋前者。
- 覆蓋_xsrf 進行(xíng)刷粉的(de)方法及 POC 代碼' 。
-
- 利用(yòng) link.zhihu.com 的(de) XSS 漏洞,設置 cookie: _xsrf¶"=aaaaaa; domain=.zhihu.com,設置表單中的(de)_xsrf=aaaaaa,POST ±φ≈σ數(shù)據包關注目标用(yòng)戶,即可(kě)實現(xi♣àn)覆蓋_xsrf 進行(xíng)刷粉。P↑€"≤OC 代碼中,利用(yòng)函數(shù) love,通(tōng)σ®♦過設置 cookie 和(hé)表單中的(de)_xsrf 值相(♠¥♠σxiàng)等,實現(xiàn)特定操作(zuòπ£)。
(二)公衆号平台
- 文(wén)章(zhāng)标題未轉義導緻留言頁面出現(xiàn)♦§©÷安全漏洞。
-
- 在公衆号中,發一(yī)篇文(wén)章(zhλāng)标題中包含 <input ↓ ₹←onfocus="alert('1&↓"≠#39;)">,用(yòng)戶打開★§✔(kāi)文(wén)章(zhāng)後,在留言頁面中标題未被轉義被渲♦≠染成 HTML,用(yòng)戶點擊被渲染出來(lái)的(d∏♥₽'e)輸入框後執行(xíng)代碼,這(zhè)暴露了(© ♠le)公衆号在文(wén)本轉義處理(lǐ)上(shàng)的(de)漏≤★×洞。
- 存儲型 XSS 攻擊在公衆号的(de)表現(xiàn)及防範策略。
-
- 在公衆号中,存儲型 XSS 攻擊常見(jiàn)于發表文(wén)Ωβ&章(zhāng)或評論場(chǎng)景等保存₹ ♣用(yòng)戶編輯數(shù)據的(de)地(dì)方。攻擊☆•$α者将惡意代碼提交至服務器(qì)并保存在數(sh↕πù)據庫中,用(yòng)戶訪問(wèn)該頁面觸發δ₽攻擊行(xíng)為(wèi)。防範策略是(shì)不(b↓₽ù)相(xiàng)信一(yī)切用(yò↕∏ ₽ng)戶提交的(de)信息,對(duì)評論、文(wγ©én)章(zhāng)等進行(xíng)字符串轉義,在顯示富文σα™↕(wén)本場(chǎng)景下(xià)考慮采用(yòng<↔∏)白(bái)名單過濾辦法。
(三)頭條平台
- 根據 HackerOne 數(shù)據,XSλ≥±S 是(shì) Web 應用(yòng)最常見(jiàn)漏洞類✘≤型之一(yī)。
-
- 據 HackerOne 數(shù)據顯示,當前 &Web 應用(yòng)程序上(shàng)最常見(jiàn)的Ω ♥(de)漏洞類型是(shì)跨站(zhàn)✘♥←®點腳本 (XSS)。在 HackerOne'®♦φ 支付的(de) 5500 萬美(měi)元的(d≥♥e)漏洞賞金(jīn)中,有(yǒu) 800 萬美(m✘₽σěi)元用(yòng)于發現(xiàn)公司 Web 應用(yòn↓₽g)程序中的(de) XSS 漏洞,這(zhè)突顯了(le) XSS 漏≈δ≤洞的(de)普遍性。
- CSRF 和(hé) XSS 攻擊在頭條網絡安全面試∞₽βπ中的(de)淺析。
-
- 在頭條網絡安全面試中,淺析了(le) CSRF(Cr≥ λoss-site request forgery 跨站(zh♦♠δàn)請(qǐng)求僞造)和(hé) ↑♣XSS(跨站(zhàn)腳本攻擊)的(de)原理(lǐ)、起源和(hé)$>→€防範。CSRF 是(shì)攻擊者盜用(yòn↑₽g)用(yòng)戶身(shēn)份以用(yòng)•≠÷戶名義發送惡意請(qǐng)求,可(kě)能(néng)導緻個(gè)→人(rén)隐私洩露及财産安全等問(wèn)題。XSS 則是(shì)惡意攻πε↑擊者往 Web 頁面裡(lǐ)插入惡意 html 代碼,當用(yòng)戶$±♠↔浏覽該頁時(shí),嵌入其中的(de) html 代碼會✔Ω≥(huì)被執行(xíng),從(cóng)₹©而達到(dào)惡意攻擊用(yòng)戶的(de)目的(d®♣®✔e)。
- 利用(yòng)網站(zhàn)漏洞搞網絡攻擊被網警≤•↑δ抓的(de)案例及對(duì) “XSS&rdqu₽&☆↕o; 的(de)解釋。
-
- 雖然目前沒有(yǒu)明(míng)确的(de)頭條平台上(shàng)利δ用(yòng)網站(zhàn)漏洞搞網絡攻擊被網警抓的(de)案例,但(dànλβ€♣)可(kě)以明(míng)确的(de)是(shì)γ•™,XSS 攻擊是(shì)一(yī)種嚴重的(Ω↓εde)網絡安全問(wèn)題。XSS 攻擊即惡意攻擊者往 Web 頁×★ε面裡(lǐ)插入惡意 html 代碼,當♣¶±≤用(yòng)戶浏覽頁面時(shí),惡意代碼被 ÷執行(xíng),可(kě)能(néng)導緻用(yòng)戶信息被竊取、網站♥•'÷(zhàn)功能(néng)被破壞等後果 ↓★∏。
四、XSS 的(de)構造技(jì)巧與防禦
(一(yī))構造技(jì)巧
1. 利用(yòng)字符編碼,如(rú) G☆×BK/GB2312 編碼可(kě)造成 XSS 攻擊。
如(rú)果用(yòng)戶變量中有(yǒu)特殊字符,系統會≈♣ σ(huì)用(yòng) “\” 進行±©♥≈(xíng)轉義。比如(rú)輸入 “;alert (/XSS/ ←✔÷), 會(huì)被系統轉義成:var redirectUrl =₩≥ ";alert (/XSS/);",這(zhè™™)樣參數(shù)就(jiù)是(shì)一(yī)個(g×£♣è)字符串。但(dàn)如(rú)果頁面是(shì) GBK/Gε✘¶€B2312 編碼,“% c1✘®≠\” 這(zhè)兩個(gè)字₩↓λ€符組合在一(yī)起就(jiù)是(shì)一(yī)π 個(gè) Unicode 字符,所以如(rú)<™果傳遞 % c1”;alert (/XSS©€♠×/), 那(nà)麽轉義後為(wèi):v¥βar redirectUrl = "<φ≈% c1;alert (/XSS/)",% c"←1 會(huì)将轉義字符 “\&rdquo≠α'; 給吃(chī)掉,從(cóng)而造成₹∑ XSS 攻擊。
2. 繞過長(cháng)度限制(zhì),通(tōng)過标簽自(zì)♠ 帶 onclick 事(shì)件(jiàn)或打通(tōng)文(wén♣↓±♥)本框輸入惡意腳本。
一(yī)些(xiē)網站(zhàn)可(kě)能(néng)會(<$®huì)對(duì)有(yǒu)可(kě)能(néng)σΩ産生(shēng) XSS 的(de)地(dì)方設置變量長(chán≤♥®←g)度限制(zhì),但(dàn)攻擊者可(kě)以不(bù)插£♥♥入 javascript 腳本,而是(shì)通(tōng)過标簽自(zì)帶÷★的(de) onclick 事(shì)件(jiàn)配合隐藏在 locati↑→on.hash 的(de)惡意腳本進行(xíng)攻擊。另↓↑↑一(yī)種方式則是(shì)通(tōng<↕)過注釋帶有(yǒu)長(cháng)度限制(zhì)的(de)文(wén)本↓✔∞β框,打通(tōng)兩個(gè)文(wén)本框來(lái)輸入較長(chán≥♥©g)字數(shù)的(de) javascript ×腳本。
3. 使用(yòng)标簽劫持當前頁面相(xiàng)&®€對(duì)路(lù)徑标簽。
<base>标簽用(yòng)于定義頁面上(shàng)所有€÷®¥(yǒu)使用(yòng)相(xiàng)對(duì)路(lù)徑标簽的('∏♠↓de) hosting 地(dì)址。攻擊者如(rú)®₽果在頁面插入<base>标簽,就(jiù)可<×¥(kě)以通(tōng)過在遠(yuǎn)程服務器(qì)上•'¥(shàng)僞造圖片、鏈接或者腳本,劫持當前α≈<頁面中所有(yǒu)使用(yòng)相(xiàng)對(duì φ )路(lù)徑的(de)标簽。
4. 利用(yòng) window.name 對≥↓©<(duì)象實現(xiàn)跨域跨頁面傳遞數(shù)據。
對(duì)當前窗(chuāng)口的(de) win★™★dow.name 對(duì)象賦值,沒有(yǒu)特殊字符的(de)限制(z≈'hì),因為(wèi) window 對(duì)象是(shì)浏覽器(q€§ì)窗(chuāng)口,而并非 document 對¶•∑(duì)象,因此很(hěn)多(duō)時(shí)候 wi& ≈ndow 對(duì)象不(bù)受同源策略的(de)限制(zhì),攻擊者•↑利用(yòng)這(zhè)個(gè)對(duì)象可(k≤↓σě)以實現(xiàn)跨域,跨頁面傳遞數(shù)據。
5. Anehta 的(de)回旋镖思路(lù),結合不(βγbù)同域的(de) XSS 進行(xíng)攻擊。
因為(wèi)浏覽器(qì)同源策略的(de)原因,XSS εδ∞也(yě)受到(dào)同源策略的(de)限制(zhì),發生(shēng✔®)在 A 域的(de) XSS 很(hěn)難影(yǐ★×§ng)響到(dào) B 域的(de)用↕↑&(yòng)戶。回旋镖的(de)思路(lù)就(jiù)是(shì):Ω←'•如(rú)果 B 域上(shàng)存在一(yī)個(gè)反射型 X€♣™SS_B,A 域上(shàng)有(yǒu)一(yī)個(g•>✔è)存儲型 XSS_A,當用(yòng)戶訪問(♠<®wèn) A 域上(shàng)的(de) XSS®₽¥_A 時(shí),同時(shí)嵌入 Bπλδ 域的(de) XSS_B,即浏覽 A 網頁時(shí)♠×↓✘,觸發 A 腳本,腳本會(huì)跳(tiào)轉到(dào) Bλ γ 網站(zhàn)觸發 B 腳本,然後再跳(tiào)回來(lái),雖然說 Ω÷(shuō)時(shí)間(jiān)可(₩ kě)能(néng)很(hěn)短(duǎn),但(dàn)是(sh↕↑€≠ì)地(dì)址欄可(kě)以明(míng)顯感知(zhī)到(dα¶≤¶ào)變化(huà)。
(二)防禦方法
1. 利用(yòng) HttpOnly 屬性,禁止 JavaScripβ₩♥t 訪問(wèn)帶有(yǒu)該屬性的(de) cookie§σ££。
浏覽器(qì)将禁止頁面的(de) JavaScript 訪問(wèn)帶✘λ₽有(yǒu) HttpOnly 屬性的(de) cookie,在 ≤αγsetcookie 的(de)時(shí)候可(k€₽<γě)以将 cookie 設置成 HttpO εnly,設置後 JavaScript 就(jiù)"♣∑無法獲取該數(shù)據。XSS 攻擊自(zì)然無法奏效了(leφ¥)。
2. 輸入檢查,使用(yòng) XSS Fi←lter 但(dàn)要(yào)注意語境理(lǐ)解問(wèn♠☆)題。
XSS Filter 在用(yòng)戶提交數(shù)據時(shí)獲<<" 取變量,并進行(xíng) XSS 檢查;但(dàn)此時(shí)用(yò∞≤ng)戶數(shù)據沒有(yǒu)結合渲染頁λ™面的(de) HTML 代碼,可(kě)能(néng)對(duì¥≈☆)語境理(lǐ)解并不(bù)完整。比如(rú)≤∞•™<script src = "$var&quo≥βπ☆t;></script>,用(yòng)戶隻需提交一₹(yī)個(gè)惡意腳本的(de)地(dì)址就(jiù)可(kě)實施 X≈♦SS 攻擊,但(dàn)是(shì) URL 在此處本來(lái)就→←$(jiù)是(shì)合法用(yòng)戶數(£•↔shù)據,所以無法判斷有(yǒu)沒有(y←&ǒu)問(wèn)題。如(rú)果輸入 1+1<3,如(rú)€ 果 XSS Filter 不(bù)夠智能(néng)有(yǒu)可(k≠£¥ě)能(néng)将‘<’過濾掉,這(z£✔≈hè)樣改變了(le)用(yòng)戶原本的(de)意思。輸入的(d φ≤e)數(shù)據還(hái)可(kě)能(né®★ ng)展示在多(duō)個(gè)地(dì)方,每個(gè)地(dì)方的(d δΩe)語境可(kě)能(néng)不(bù)同,使用(yòng)$ε≠單一(yī)替換操作(zuò),也(yě)有(yǒε₩u)可(kě)能(néng)出現(xiàn)問(wèn)題,比₽如(rú)用(yòng)戶輸入 “我是(shì)‘σ↓Ω±天才’”,Filt±©π§er 對(duì)其轉義為(wèi) $name = ' 我是(sh♦Ωì) \"天才 \"'≈δ ,在 html 代碼中展示為(wèi):<d₹ ↕iv>我是(shì) \\\"天才 \\\"& &πlt;/div>,在 JavaScript 中能(néng)正常展≈¶示。
3. 輸出檢查,針對(duì) HTML 和(hé) λαJavaScript 采用(yòng)不(♥€bù)同編碼或轉義方式防禦 XSS 攻擊。
除了(le)富文(wén)本的(de)輸出外(wài),在變量輸∞✔出到(dào) HTML 界面時(shí),可(kě)以使用(yòng→± )編碼或轉義方式來(lái)防禦 XSS 攻擊。針δ '對(duì) HTML 代碼的(de)編碼方式&✔是(shì) HtmlEncode,針對(≠↕£duì) JavaScript 的(de)則是(shì) JavaScriβ"ptEncode (後面簡稱 JE)。JE ←"需要(yào)使用(yòng) “\” 對(duì>)特殊字符進行(xíng)轉義,在對(duì)抗 XSS 時(shí),還(h☆≠€±ái)要(yào)求輸出的(de)變量必須↔γ∑∞在引号內(nèi)部。在正确的(de)地(dì)方使用(yòng§♥÷)正确的(de)編碼方式,例如(rú) oncliΩ♠ck = "alert (' var'÷≠ = htmlencode ("') γα;alert ('2"),那( ¥'₹nà)麽預期是(shì)解決了(le) XSS 注入問(wèn)題,₽ε↕¶但(dàn)仍需謹慎處理(lǐ)各種複雜(zá)情況。
墨者安全 防護盾
墨者安全作(zuò)為(wèi)專業(yè)級别↑∏∏ε安全防護專家(jiā),在應對(duì) Webshell 風(fē<₹ng)險隐患方面展現(xiàn)出了(le)卓越的(de♣α×)能(néng)力。其擁有(yǒu)全面的(de)檢測機(jī)制(zhì),¥φ↕λ能(néng)夠精準識别 Webshell 的(de)各種類型和(hé)變∑¥體(tǐ),無論是(shì)複雜(zá)的(de)大(dà)馬,還(hái )是(shì)隐蔽的(de)內(nèi)>×&存馬,都(dōu)難逃其敏銳的(de)監測。
墨者安全防護盾具備強大(dà)的(de)實時(×¥ ♣shí)監控功能(néng),對(duì)服務器(qì)的(de)各項活✔♥α÷動進行(xíng) 7*24 小(xiǎo)時(εσshí)不(bù)間(jiān)斷的(de)監視(shì)。一™γ≈(yī)旦發現(xiàn)任何可(kě)✔¥λ疑的(de) Webshell 活動迹象,立即≤σ發出警報(bào),并迅速采取隔離(lí)和(hé)清除措施,将風(σfēng)險扼殺在萌芽狀态。
在防護策略上(shàng),墨者安全防護盾采用(yòng)了(le)多(duō≠≈σ')層次的(de)防禦體(tǐ)系。不(bù)£•→♦僅能(néng)夠在網絡層面阻擋外(wà'×i)部的(de)惡意訪問(wèn)和(hé)攻擊,還(hái)能(n™éng)深入系統內(nèi)部,對(duì)∏&₽服務器(qì)的(de)文(wén)件(jiàn)系統、進程等進行(x÷>íng)深度檢查和(hé)保護,确保 Webshell 無±€法植入和(hé)運行(xíng)。
同時(shí),墨者安全防護盾擁有(yǒu)快(kuài)速的(de)應急響>應能(néng)力。當 Webshell 攻擊事(shì)件(ji$"αàn)發生(shēng)時(shí),專業(yè)的(de)安全團隊§♦±₹能(néng)夠迅速介入,進行(xíng)深入的(de)分(fēn)析和(hé<↕↕≠)處理(lǐ),最大(dà)程度減少(shǎo)攻擊'>≠帶來(lái)的(de)損失,并幫助用(yòng)戶快(kuài©β×)速恢複服務器(qì)的(de)正常運行(xíng)。
墨者安全防護盾還(hái)注重用(yòng)戶教育和(hé)培訓,為§¥↕(wèi)用(yòng)戶提供關于 Weβφ₽bshell 防範的(de)專業(yè)知(zhī)識和(hé)最佳實踐,↑↓幫助用(yòng)戶提升自(zì)身(shēn)的(de)安全意↓識和(hé)防範能(néng)力,共同構建堅實的(de)網絡γ↓安全防線。